java从网页抓取数据(WebScraper就是以树插件使用生巧插件(图))
优采云 发布时间: 2022-01-10 03:12java从网页抓取数据(WebScraper就是以树插件使用生巧插件(图))
安装
Web Scraper 是一个谷歌浏览器插件。访问官方网站并点击“安装”
它会自动跳转到 Chrome 的在线商店,点击“添加到 Chrome”。
如果无法访问Chrome的在线商店,请访问国产插件网站进行安装,如下:
浏览器插件下载中心
173应用网络
Chrome 网上应用店镜像
又一个英文下载网站
crx离线安装包下载
铬插件
ChromeFor 浏览器插件
利用
什么叫完美,新手可能很难理解,其实只需要记住一句话,一个网页的内容是一棵树,树的根是网站的url,从url 网站 到我们需要访问数据所在的元素(html元素),就是从根节点遍历到叶子节点的过程。这个过程很简单,就是直接去叶子节点,还有一个复杂的过程,就是用递归的思维来处理页面刷新的情况。
在这里,我只展示一些简单的,让您对 Web Scraper 有一个初步的了解。对于复杂的爬取,请访问官方文档,阅读视频和文档学习。
请记住,网页的内容是一棵树,因此您可以轻松了解该工具的工作原理。Web Scraper 以树的形式组织站点地图。以抓取知乎的热榜数据为例,一步步展示本插件的使用。
知乎热榜页面如下图:
root是页面的URL,也就是现在给这个root取个名字,叫知乎_hot(名字随意,方便识别),知乎_hot的子节点可以是video、science、digital、sports。这些子节点下的子节点就是我们要爬取的内容列表。
现在开始使用 Web Scraper:
第一步,打开谷歌浏览器的开发者工具,点击最右侧的Web Scraper菜单,如下图:
第二步是创建站点地图和选择器:
点击创建新站点地图->创建站点地图,在站点地图名称中输入知乎_hot,其中知乎_hot可以是任何名称以便于识别,只能是英文,然后填写Start Url:然后点击创建站点地图按钮完成创建,如下图所示:
点击Add new selector,添加一个选择器,即添加一个子节点:
然后会弹出一个框供我们填写选择器的相关信息。ID填写类别,类型选择元素点击。这时会出现两个选择器,一个是selector,代表要传递给category子节点的元素,另一个是Click选择器,代表要点击的元素。为了方便大家理解,请先选择Click选择器,再选择选择器,如下图:
点击选择器的选择:
选择器的选择:
选择完成后,勾选Mutiple爬取多类,点击保存选择器保存。
继续在category下添加Selector,即category_e,category_e接收到的元素就是category中选择器选中的元素,即div.HostList-list。category_e的配置如下图所示:
然后继续在category_e下添加三个Selector,分别是hot_no、title、hot_degree,如下图所示:
保存后点击Selector graph
您可以看到如下所示的树:
此时,我们的站点地图及其选择器已创建。
第三步是运行 Web Scraper。
单击菜单中的“刮擦”按钮
然后会要求你设置爬取的时间间隔,保持默认,如果网速慢可以适当延长:
单击开始抓取以运行 Web Scraper。此时Web Scraper会打开一个新的浏览器窗口,执行按钮点击操作,并将数据保存在浏览器的LocalStorage中。操作完成后,新窗口会自动关闭,点击下图中的刷新按钮:
可以看到抓取到的数据,如下图所示:
数据可以导出为 csv 文件,点击 Export data as CSV -> 立即下载
您可以下载 csv 文件:
是不是很方便?
如果还是不能成功爬取上面的数据,下面是我导出的sitemap信息,可以将这些文字复制到sitemap中,再试一次,对比一下看看有什么不同:
{"_id":"zhihu_hot","startUrl":["https://www.zhihu.com/hot"],"selectors":[{"id":"category","type":"SelectorElementClick","parentSelectors":["_root"],"selector":"div.HotList-list","multiple":true,"delay":2000,"clickElementSelector":"a.HotListNav-item","clickType":"clickOnce","discardInitialElements":"do-not-discard","clickElementUniquenessType":"uniqueText"},{"id":"category_e","type":"SelectorElement","parentSelectors":["category"],"selector":"section","multiple":true,"delay":0},{"id":"hot_num","type":"SelectorText","parentSelectors":["category_e"],"selector":"div.HotItem-rank","multiple":false,"regex":"","delay":0},{"id":"title","type":"SelectorLink","parentSelectors":["category_e"],"selector":".HotItem-content a","multiple":false,"delay":0},{"id":"hot_degree","type":"SelectorText","parentSelectors":["category_e"],"selector":"div.HotItem-metrics","multiple":false,"regex":"","delay":0}]}
至于分页,或者无限加载,都可以轻松搞定。这种情况下的分类按钮相当于一种分页按钮。其他分页操作,官网有相应的视频教程。
的优点和缺点
优势:
Web Scraper 的优势在于无需学习编程即可抓取网页数据。
即使对于计算机专业人士来说,使用 Web Scraper 爬取一些网页的文本数据也比自己编写代码效率更高,可以节省大量的编码和调试时间。
依赖环境很简单,只需要谷歌浏览器和插件。
缺点:
仅支持文本数据采集,不能批量采集图片、短视频等多媒体数据。
不支持复杂的网页爬取,如采取反爬取措施,复杂的人机交互网页,Web Scraper无能为力。事实上,这种代码爬取也是相当困难的。
导出的数据不按爬取的顺序显示。如果要排序,需要导出Excel,然后排序。这也很容易克服。在数据分析之前,大部分数据都需要导出到 Excel 中。