![20d9cf013a4d6452dca0ce1704d44fe3.png](https://i-blog.csdnimg.cn/blog_migrate/3bfe61158b72a379e806ffccbfe76594.jpeg)
【摘要】来一个插件帮忙翻看一下网页上的数据——webscraper,目的当然是为了学习新知识,希望在此与大家一起进步,一起成长。谢谢大家的过目!为了更加透彻清晰,将采用图文并茂的方式。(如有侵权,请及时联系我) 本文来自于x-team成员:清泓 。「最后更新时间2020年2月23日【持续更新】」
(本人郑重声明:抓取的所有资料著作权归被抓取方所属公司或集团,抓取数据只供学习使用,强烈谴责把数据商业化!!!请勿以身试法!)
本文主要参考文献:[1]
一.安装
安装采用的网站[2]下载,这个网站是一个插件库,实测可行。
![a23abe505b9e2fd0a9e63f427763fba5.png](https://i-blog.csdnimg.cn/blog_migrate/eac9565454377f0e11a041be62669c92.png)
![0751c9b13859f2bf5153d081eb9406b7.png](https://i-blog.csdnimg.cn/blog_migrate/5e4d2002b571bd01b220d70570d5dae0.jpeg)
下载下来之后,是一个crx文件,然后打开Chrome,重点是:只支持Chrome浏览器!
![bdee5479996c991573d7286c737b946f.png](https://i-blog.csdnimg.cn/blog_migrate/0a68000aab46d0fe29338fb473660870.png)
1.打开Chrome浏览器设置,找到拓展程序。
![dec2856a1292d85e9a1c9462cfad26a3.png](https://i-blog.csdnimg.cn/blog_migrate/d8456b9906171f5365cf8642a1c14e16.jpeg)
2.打开浏览器开发者模式。
![d36c871dc2fe5c0d356e90339969ac81.png](https://i-blog.csdnimg.cn/blog_migrate/edf3e5d632021d111d4ee239b3d1b338.png)
3.将crx的后缀名改为zip格式并解压。
4.点击拓展程序里面的按钮「加载已解压的拓展程序」。
![8287005ac2cb14441c7120d05a99894d.png](https://i-blog.csdnimg.cn/blog_migrate/8c62b911b6da8066cdf6e370f847aebc.png)
5.成功部署webscraper。
![6fb83d8077259c03f3fb073171d3e807.png](https://i-blog.csdnimg.cn/blog_migrate/a13d48d0863952f3120fca368e65c105.png)
基本安装步骤就说到这里了,下面让我们来小试一下牛刀。
二.初步使用,抓取csdn官方博客的所有条目数据。
1.抓取博客第一页的所有标题。
(1)打开网页,打开调试板,找到webscraper,点击进去。
![570a44983c52dccdd742da8e8a0ff81e.png](https://i-blog.csdnimg.cn/blog_migrate/ce7d010b95db6a19f16ccb9138b0fb73.jpeg)
值得注意的是这个调试板必须要弄成下列模式布局,在浏览器下方的布局。
![15c0b4e9b2475d7372c1cb38850ae2b7.png](https://i-blog.csdnimg.cn/blog_migrate/3025228ac31c0586668f8494e08bad85.jpeg)
(2)添加请求头,这个就是我们的网页地址https://blog.csdn.net/blogdevteam/。
![867000ee40d36677b340f215395d2f0a.png](https://i-blog.csdnimg.cn/blog_migrate/6026d55f6521b1100f66e747b60c0b20.png)
![0650f2c5364759f853e9d992ee533621.png](https://i-blog.csdnimg.cn/blog_migrate/a25fff378e120c4275496fb61fa22854.png)
(3)理解工具含义。
![ae2198fe9fd360b7b9ef44dda89b316f.png](https://i-blog.csdnimg.cn/blog_migrate/9c5cb948df86a83522fde3b6c0691464.png)
创建选择器时需使用 Element preview 和 Data preview 功能以确保你选中了正确的网页元素及数据。
1)selector - CSS 选择器选取所需元素;[3]
2)multiple - 如果要选择多个记录需勾选此项。从两个或多个选中 multiple 的选择器中提取的数据不会合并到一个单独记录中;
3)delay - 选择器生效前的延迟时长;
4)parent selectors - 为此选择器选择母选择器以产生选择器树形结构;
5)文本选择器(Text selector);
6)链接选择器(Link selector);
7)元素选择器(Element selector)。
![6986e953da1876121a55118c6bdf93fa.png](https://i-blog.csdnimg.cn/blog_migrate/bef4418654868d471a8ed3def7052332.jpeg)
(4). Date extraction 选择器。
Date extraction 选择器仅从选中的元素中返回数据。譬如 Text (文本)选择器从选中的元素中提取文本。以下选择器可用作 Date extraction 选择器:
![255607fa5697ab5cb692b15513c5f539.png](https://i-blog.csdnimg.cn/blog_migrate/a7b0cc289fad05cad3da3a1bbf439887.png)
1)Text(文本)选择器;
2)Link(链接)选择器;
3)Link popup(弹出链接)选择器;
4)Image(图像)选择器;
5)Table(表格)选择器;
6)Element attribute(元素属性)选择器;
7)HTML 选择器;
8)Grouped(组块)选择器。
(5). 设定规则
![c36c10a442536d6073acf419faf115dc.png](https://i-blog.csdnimg.cn/blog_migrate/271492ea2fbe20604f882a4e51371c78.jpeg)
![975504e28c459ff3f73c0afa9c53b803.png](https://i-blog.csdnimg.cn/blog_migrate/7974a3fb3a25fc316d5bfc763c689115.jpeg)
![949e6edc23fe76f2693726acdd295d1f.png](https://i-blog.csdnimg.cn/blog_migrate/44a25f30f14d76d6e0fb342c7d1a3f4a.jpeg)
![99a5acb9488fe9aa002ab6629332c76b.png](https://i-blog.csdnimg.cn/blog_migrate/e64b51df98aa57868b4c77896589d96f.png)
(6).抓取运行和抓取结果。
![863ca831d80789e67e9a6fe4cda4102b.png](https://i-blog.csdnimg.cn/blog_migrate/1ba2163b6aa50d7e7ddb2aa4922f60c6.jpeg)
![a3ae02f582a43c06a0bc079ddd1e77b2.png](https://i-blog.csdnimg.cn/blog_migrate/8691003535a708717c90c5ae05d96cf9.jpeg)
(7). 结果,这就是设定的单页抓取标题的数据。
![71fa11ca91cfd6462a7074f11f8e968c.png](https://i-blog.csdnimg.cn/blog_migrate/187a55bf5b26b0d48ad3f751cfe4a5d8.jpeg)
三.抓取整个博客的标题,描述和日期,阅读数,评论数。
(1)关于多页抓取。
多页抓取分很多情况,需要看一下网站的规则,csdn的博客的分页规则如下:
![7afde183f306500ac6f27281dbe82a3e.png](https://i-blog.csdnimg.cn/blog_migrate/7328a9e511c70bf5384f1090f6eeb8b7.png)
当点击第二页博客的数据的时候,网址链接变成了https://blog.csdn.net/blogdevteam//article/list/2?
再看再这个博客内容有多少页。
![7afde183f306500ac6f27281dbe82a3e.png](https://i-blog.csdnimg.cn/blog_migrate/7328a9e511c70bf5384f1090f6eeb8b7.png)
可以看到总共37页。
![a05611fc365d1c30e7314067257730a8.png](https://i-blog.csdnimg.cn/blog_migrate/b0ddc639bca0c4aa5bba8a2ffd62d8cd.png)
![2e25ada87423cf8e8c1446ff1604efe2.png](https://i-blog.csdnimg.cn/blog_migrate/a659ba1780faefba9446cbbbb8f82dc6.png)
设置完之后保存一下设置,跑一下,测试一下结果是否正确。
![3193a51dcaca97f5fcde9bfb80d2f70c.png](https://i-blog.csdnimg.cn/blog_migrate/ae17e7513c6eb8ad5701758b50e676b7.jpeg)
可以看到最小页码是1,最大页码是37,抓取数据成功。现在来创建同级数据的多个数据集,道理同上,只是多了一个内容类型而已。现在的结构如下:
![a0392943ec590845bf6bc8392de8bb47.png](https://i-blog.csdnimg.cn/blog_migrate/36e1fc62be2e7e9e7776564d525c7db8.png)
![d1b57efb658c8d08456a9142aee2670c.png](https://i-blog.csdnimg.cn/blog_migrate/100dca0c83705804aff832a48ed1bde5.png)
接下来多建几个同级的内容。
![6327c392f70ab0e629821b44725f6fb4.png](https://i-blog.csdnimg.cn/blog_migrate/b1b21f121271dd54c94e7a83fd877bac.jpeg)
让我们来试一下效果,action。
![eb40735cabd01c70ac4e7e9f3f0e5040.png](https://i-blog.csdnimg.cn/blog_migrate/3ea783c1287dca4e8c7791dfd0173042.png)
![359eeea75a5b4165682dbb82fb1f38af.png](https://i-blog.csdnimg.cn/blog_migrate/f056a8c84be2ccde2e3b15cdb4bf96e6.png)
![851004ef64a5205cb34c5f623bd92572.png](https://i-blog.csdnimg.cn/blog_migrate/08f0c985cbbc30c9b5c7352dac796013.jpeg)
这个是有残缺的,每行至多一个数据内容,其余的全没了,是随机的丢失。为什么会出现这种情况呢??????太奇怪了。检查一下:
1.首先结构是没有问题的。
![418a9b2a9d6395ec437a7dc296136423.png](https://i-blog.csdnimg.cn/blog_migrate/1c666f93e226f66255e167cc4b8b98e2.jpeg)
2.单条数据没问题。
![7b4024d3d506b67dd21c2c598cf7aaa9.png](https://i-blog.csdnimg.cn/blog_migrate/03cd817bc00630431a5a411cb04c8902.jpeg)
3.逐条检查规则没任何问题。
![8e9c18c9cb60b87a5f0ccbaec8fee7d7.png](https://i-blog.csdnimg.cn/blog_migrate/2e010bbdb7d12e7d104c3a227ce6e981.png)
原因定位在multiple!
这个只能配置一个作为起始点。感觉和只能有一个主键key差不多了。
![61d539351f7854ea3ab9e0447d43e750.png](https://i-blog.csdnimg.cn/blog_migrate/0407a393c3fd8c374cdf4692e0d7f759.png)
疑似原因的解除如下,设定之后,成功加载出数据,然后导出为Excel文档。
![a8bc398d186e05925861a5892a5f526f.png](https://i-blog.csdnimg.cn/blog_migrate/ab6fe92ae83f06a67dc658389b23c397.jpeg)
![9799505e024d43e594755c1c0b539113.png](https://i-blog.csdnimg.cn/blog_migrate/aac29e34baa20335a9a6f5a47f3ceb3c.jpeg)
导出Excel文档如下:
![d86521a3dae4f5b79c038453e897c4cb.png](https://i-blog.csdnimg.cn/blog_migrate/bbfe9100da7992e2b8d9b6694e860cf4.jpeg)
注意:一个常见错误是同时创建两个选择器设定选项均选中 multiple,期望结果自然合并。例如,如果同时选择分页链接和导航链接,这些链接无法自然合并。正确的方法是使用元素选择器选用 Element 元素,并将 Data 选择器作为子选择器添加到 Element 选择器中,而不是选中 multiple 选项。
这个要特别注意,当时爬取网站的时候,是把multiple当成了一个类型选择器在使用,正确用法应该在默认_root的目录下新建一个类型选择器进行合并操作,相当于把一撮毛用橡皮筋卷起来,这个element就相当于那个橡皮筋。
2020年2月23日补充说明:(在此感谢热心知友提出的问题,以下提供的图片,也是热心网友提供的)
如下图所示,multiple1图是利用multiple对所选数据进行抓取的,但是,这个会出现一个问题,就是多个元素的批量抓取的时候,容易出现multiple2图出现的情况,单条数据的元素不能完全被抓下来,造成了单条数据的元素缺失,比如说,我抓取的电影,有三个元素,一个是电影标题,第二个元素是电影简介,第三个元素是电影评分,而结果是我们只抓取到了电影简介,或者只抓取到了电影标题。
![f959883f88e14dc2e47ea40fbaf22bea.png](https://i-blog.csdnimg.cn/blog_migrate/b6ebc90d165a5abe2123c66579cb555c.jpeg)
![920eb7b4e2926977c75c47c388b7e96c.png](https://i-blog.csdnimg.cn/blog_migrate/c2f4dfd4d072a029028296dbfdeb57d7.jpeg)
解决方案,在_root目录下加一个element类型的元素束,把这些元素捆起来。如下图element3所示:
![2afd7ff184c6da1680541e960d921341.png](https://i-blog.csdnimg.cn/blog_migrate/9bace286f1b0fe9bcd20ad5f1500b544.png)
2020年3月21日补充说明:
添加element的方法:
![](https://i-blog.csdnimg.cn/blog_migrate/0e56d407c68f8833ebdf9a5c870ab659.jpeg)