webscraper 爬取二级网页_web scraper 入门到精通之路

本文详细介绍了如何使用WebScraper插件进行网页数据抓取,包括安装、初步使用、多页抓取、多级数据抓取以及处理滚动网页的多数据抓取。通过实例展示了抓取CSDN博客、海单词网站和易读网小说数据的过程,强调了正确使用Element选择器和处理多级、多数据问题的重要性。
摘要由CSDN通过智能技术生成

20d9cf013a4d6452dca0ce1704d44fe3.png

【摘要】来一个插件帮忙翻看一下网页上的数据——webscraper,目的当然是为了学习新知识,希望在此与大家一起进步,一起成长。谢谢大家的过目!为了更加透彻清晰,将采用图文并茂的方式。(如有侵权,请及时联系我) 本文来自于x-team成员:清泓 。「最后更新时间2020年2月23日【持续更新】」

(本人郑重声明:抓取的所有资料著作权归被抓取方所属公司或集团,抓取数据只供学习使用,强烈谴责把数据商业化!!!请勿以身试法!)

本文主要参考文献:[1]

一.安装

安装采用的网站[2]下载,这个网站是一个插件库,实测可行。

a23abe505b9e2fd0a9e63f427763fba5.png

0751c9b13859f2bf5153d081eb9406b7.png

下载下来之后,是一个crx文件,然后打开Chrome,重点是:只支持Chrome浏览器!

bdee5479996c991573d7286c737b946f.png

1.打开Chrome浏览器设置,找到拓展程序。

dec2856a1292d85e9a1c9462cfad26a3.png

2.打开浏览器开发者模式。

d36c871dc2fe5c0d356e90339969ac81.png

3.将crx的后缀名改为zip格式并解压。

4.点击拓展程序里面的按钮「加载已解压的拓展程序」。

8287005ac2cb14441c7120d05a99894d.png

5.成功部署webscraper。

6fb83d8077259c03f3fb073171d3e807.png

基本安装步骤就说到这里了,下面让我们来小试一下牛刀。

二.初步使用,抓取csdn官方博客的所有条目数据。

1.抓取博客第一页的所有标题。

(1)打开网页,打开调试板,找到webscraper,点击进去。

570a44983c52dccdd742da8e8a0ff81e.png

值得注意的是这个调试板必须要弄成下列模式布局,在浏览器下方的布局。

15c0b4e9b2475d7372c1cb38850ae2b7.png

(2)添加请求头,这个就是我们的网页地址https://blog.csdn.net/blogdevteam/。

867000ee40d36677b340f215395d2f0a.png

0650f2c5364759f853e9d992ee533621.png

(3)理解工具含义。

ae2198fe9fd360b7b9ef44dda89b316f.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

(4). Date extraction 选择器。

Date extraction 选择器仅从选中的元素中返回数据。譬如 Text (文本)选择器从选中的元素中提取文本。以下选择器可用作 Date extraction 选择器:

255607fa5697ab5cb692b15513c5f539.png

1)Text(文本)选择器;

2)Link(链接)选择器;

3)Link popup(弹出链接)选择器;

4)Image(图像)选择器;

5)Table(表格)选择器;

6)Element attribute(元素属性)选择器;

7)HTML 选择器;

8)Grouped(组块)选择器。

(5). 设定规则

c36c10a442536d6073acf419faf115dc.png

975504e28c459ff3f73c0afa9c53b803.png

949e6edc23fe76f2693726acdd295d1f.png

99a5acb9488fe9aa002ab6629332c76b.png

(6).抓取运行和抓取结果。

863ca831d80789e67e9a6fe4cda4102b.png

a3ae02f582a43c06a0bc079ddd1e77b2.png

(7). 结果,这就是设定的单页抓取标题的数据。

71fa11ca91cfd6462a7074f11f8e968c.png

三.抓取整个博客的标题,描述和日期,阅读数,评论数。

(1)关于多页抓取。

多页抓取分很多情况,需要看一下网站的规则,csdn的博客的分页规则如下:

7afde183f306500ac6f27281dbe82a3e.png

当点击第二页博客的数据的时候,网址链接变成了https://blog.csdn.net/blogdevteam//article/list/2?

再看再这个博客内容有多少页。

7afde183f306500ac6f27281dbe82a3e.png

可以看到总共37页。

a05611fc365d1c30e7314067257730a8.png

2e25ada87423cf8e8c1446ff1604efe2.png

设置完之后保存一下设置,跑一下,测试一下结果是否正确。

3193a51dcaca97f5fcde9bfb80d2f70c.png

可以看到最小页码是1,最大页码是37,抓取数据成功。现在来创建同级数据的多个数据集,道理同上,只是多了一个内容类型而已。现在的结构如下:

a0392943ec590845bf6bc8392de8bb47.png

d1b57efb658c8d08456a9142aee2670c.png

接下来多建几个同级的内容。

6327c392f70ab0e629821b44725f6fb4.png

让我们来试一下效果,action。

eb40735cabd01c70ac4e7e9f3f0e5040.png

359eeea75a5b4165682dbb82fb1f38af.png

851004ef64a5205cb34c5f623bd92572.png

这个是有残缺的,每行至多一个数据内容,其余的全没了,是随机的丢失。为什么会出现这种情况呢??????太奇怪了。检查一下:

1.首先结构是没有问题的。

418a9b2a9d6395ec437a7dc296136423.png

2.单条数据没问题。

7b4024d3d506b67dd21c2c598cf7aaa9.png

3.逐条检查规则没任何问题。

8e9c18c9cb60b87a5f0ccbaec8fee7d7.png

原因定位在multiple!

这个只能配置一个作为起始点。感觉和只能有一个主键key差不多了。

61d539351f7854ea3ab9e0447d43e750.png

疑似原因的解除如下,设定之后,成功加载出数据,然后导出为Excel文档。

a8bc398d186e05925861a5892a5f526f.png

9799505e024d43e594755c1c0b539113.png

导出Excel文档如下:

d86521a3dae4f5b79c038453e897c4cb.png

注意:一个常见错误是同时创建两个选择器设定选项均选中 multiple,期望结果自然合并。例如,如果同时选择分页链接和导航链接,这些链接无法自然合并。正确的方法是使用元素选择器选用 Element 元素,并将 Data 选择器作为子选择器添加到 Element 选择器中,而不是选中 multiple 选项。

这个要特别注意,当时爬取网站的时候,是把multiple当成了一个类型选择器在使用,正确用法应该在默认_root的目录下新建一个类型选择器进行合并操作,相当于把一撮毛用橡皮筋卷起来,这个element就相当于那个橡皮筋。

2020年2月23日补充说明:(在此感谢热心知友提出的问题,以下提供的图片,也是热心网友提供的)

如下图所示,multiple1图是利用multiple对所选数据进行抓取的,但是,这个会出现一个问题,就是多个元素的批量抓取的时候,容易出现multiple2图出现的情况,单条数据的元素不能完全被抓下来,造成了单条数据的元素缺失,比如说,我抓取的电影,有三个元素,一个是电影标题,第二个元素是电影简介,第三个元素是电影评分,而结果是我们只抓取到了电影简介,或者只抓取到了电影标题。

f959883f88e14dc2e47ea40fbaf22bea.png
multiple1(只设置了multiple)

920eb7b4e2926977c75c47c388b7e96c.png
multiple2

解决方案,在_root目录下加一个element类型的元素束,把这些元素捆起来。如下图element3所示:

2afd7ff184c6da1680541e960d921341.png
element3

2020年3月21日补充说明:

添加element的方法:

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值