【黑科技】爬虫也可以一键获取 [加载更多] 数据,无编码学爬虫之三。
今天是持续写作的第 <font color="red">18</font> / 100 天。
如果你有想要交流的想法、技术,欢迎在评论区留言。
本篇博客将带你解决网页加载更多按钮点击的问题,学习之后,你只需点点鼠标,数据就可以快速存储到本地。
此类教程涉及图片比较多,学习的时候大量的依赖实操,所以在后续本系列内容将转换为视频载体提供给大家。
缓解一下视疲劳
缓解一下视疲劳
目标网站分析
本次要抓取的网站为:产品 100,该网站最大的特点是点击【加载更多】按钮会加载数据,类似的网站非常多,Web Scraper 对于该种类型的网站解决办法是一致的。
本案例最终希望获得的数据为下图框选区域,分别是标题 title
、描述 des
、作者 author
、浏览 view
、评论 comment
、点赞 like
。
简单分析之后就可以开始通过 Web Scraper 进行爬虫程序的编写了。
点鼠标写爬虫
第一步,创建 sitemap
写入 sitemap 名称与 start url,完成初审内容的创建,因为是通过加载更多按钮获取数据,所以 start url 不需要设置分页。
第二步,添加 Element 选择器
添加 Element 选择器这里需要掌握一个新的知识了,咱选择的是 Element click
,这个就是加载更多(有可能会叫其它名字)按钮。
关于 Element Click
官方文档给出的说明是。
Element click selector works similarly to Element selector. It's main purpose also is element selection that could be given as parent elements to its child selectors. The only difference is that Element click selector can interact with the web page by clicking on buttons to load new elements. For example a page might use JavaScript and AJAX for pagination or item loading.
英语水平很高的橡皮擦要进行翻译了:
Element click 跟之前学习的 Element 差不多,主要用于选择网页元素,一般目的就是当做父标签去选择子标签,这个与之前学到的 Element 最大的区别就是支持点击加载更多这样的按钮。
还有一个需要注意的是,选择加载更多按钮的时候,用键盘上的 S
进行选择,为啥啊?因为在 [加载更多] 按钮上点击鼠标左键,很容易就 [加载更多] 数据了。
选择该 Type 之后,多出一些内容,具体如下图所示。
以上内容分别是。
Click selector 选择加载更多按钮;
Click type 点击类型,可以点击多次,也可以点击一次,本案例请选择 Click more;
Click element uniqueness 何时停止抓取数据,一般会选择 Unique Text,表示按钮文字更换就停止,本案例到最后就是
加载更多
按钮变为没有更多
了,此时数据就会停止抓取;Discard initial elements 是否丢弃初始数据,保持默认就可以;
Delay 延迟时间,点击加载更多之后的等待时间,一般设置 1~2 秒即可。
第三步,配置好所有参数
有了上述基础知识后,就可以进行参数配置了,配置完毕如下图所示。原 Selector 依旧按照 Element 选择方式框选目标数据所在区域即可。
第四步,选择子元素
父级元素已经确定,接下来选择子元素,按照下图所示进入子元素添加页面。
依次将目标数据需要的内容全部设置完毕。
调整一下浏览量参数,id
最少为 3 个字符。
第五步,查看爬虫结构
爬虫的结构在爬取之前建议大家都核对一下,确保没啥问题,在进行爬虫程序的启动。
第六步,运行爬虫
使用 Scrape 将爬虫启动,等待数据进入篮子里面来。结果发现运行一次就停止了,查阅爬虫程序之后发现是下图设置的问题,Click type 修改为 Click more。
运行一段时间之后,得到数据如下。
写在后面
本文之后,对于 Web Scraper 你肯定会多一些喜欢,毕竟手动编写代码处理有 [加载更多] 按钮的网站,有时候会碰到一些麻烦,爬虫不是很好写,而掌握了 Web Scraper 之后,这种类型的网站会变成通解。
**想学 Python 编写语言写爬虫,可以订阅橡皮擦专栏哦~
**
如果你想跟博主建立亲密关系,可以关注同名公众号 <font color="red">梦想橡皮擦</font>,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/8ee52338dd7be16e06b3e7853】。文章转载请联系作者。
评论