数据抓取学习3|web scraper爬虫使用方法—进阶篇
优采云 发布时间: 2022-06-20 04:44数据抓取学习3|web scraper爬虫使用方法—进阶篇
上一篇文章讲了web scraper的基础操作,今天跟大家分享web scraper爬虫的一些进阶使用方法,学会了它,大概80%的网站元素都可以抓取了。
它的步骤都是:
创建一个站点Create sitemap—新增选择器Add new selector—点击Scrape抓取,不同的是选择器中Type的选择。
在进阶篇中,主要讲的就是这几个Type的使用。
目录
页内提取多个字段Type=Element
选择树Selector graph
选择快捷键Enable key
不规则分页Type=Element scroll down/Element click
二三级页面元素采集Type=Type=Link
抓取表单Type=Table
Delay的设置
1.页内提取多个字段(Type=Element)
如上图,如果想要同时抓取这个回答中的标题、点赞人数、回答的正文,就要用到Element这个选择器,它表示的是元素集,各个元素组成的一个元素集。比如上图中的回答中的标题、点赞人数、回答的正文、评论数就在一个元素集里。
具体的操作步骤如下:
新建一个站点地图Create sitemap—新建选择器Add new selector—新建子选择器—抓取
点击Select选取元素,这个是元素集,所以选择时要把整个元素集都框选中。具体步骤如下图,在基础篇中讲过,在选择时如果是type(1),说明这个页面的元素没有选完,这里再选择下一个元素集就可以了。
在新建选择器时选择Element这个选择器,勾选Multiple。
建好之后,点击这个选择器,进入到选择子器页面,然后再新建子选择器,选择需要抓取的页面元素。比如:标题、正文、点赞数、评论数。
子元素:标题、正文、点赞数、评论数这些都是文本,Type选择Text就可以了。
2.选择树Selector graph
在Sitemap的下拉菜单中有一个Selector graph的选择,通过它可以查看选择器之间的逻辑关系。
这个例子中元素集与元素之间的关系。
3.选择快捷键(Enable key)
用鼠标选择页面元素,有时候会出现选择错误或者是一点击就跳到的另外一个页面,这时候可以利用Enable key这个快捷操作去选取元素。
勾选Enable key ,把鼠标悬停在你要选择的元素上,待采集字段变绿后点击键盘S键选择。
4.不规则分页Type=Element scroll down/Element click
像下图中这种,需要鼠标向下滚动和点击“加载更多”,网页才会加载出新的内容。
这类网站的元素,可以分别利用选择器Type中的Element scroll down和Element click来进行抓取。
下面这个实例:收集IT桔子中金融类公司的公司名,公司简介。
这里需要鼠标点击“加载更多”才会出现新的内容。
新建一个站点地图后,新增选择器,在Type中选择Element click,点击Selector中的Select,选择元素集。
在Click selector点击Select,选择“加载更多”。
Click type 中选择Click more,因为这条类目内容很多,需要点击多次的“加载更多”,如果需要点击一次的话,选择Click once就可以。
Click element uniquenss选择unique CSS Selector。
勾选Multiple,注意在子选择器中就不用勾选。
这里加载可能会出现一点延时,所以可以加一个1000ms的延时。
然后再分别建立公司标题和公司简介的子选择器,进行抓取即可。
5.二三级页面元素采集Type=Link
还是知乎的例子,如果还想要收集这个问题的关注人数和浏览量,但这两个数据在另外一个页面,这里就需要用到选择器中Type=Link的选项,它表示的是指向这个文本背后的链接。
具体的操作步骤如下:
在元素集的子选择器中新建一个link的子选择器。
Type选择Link,选中标题,这里会看到出现标题的链接。
在link的下面再新建两个选择器,分别抓取关注和浏览量的数据。
看下这个抓取的逻辑树,理解就更清晰了:
6.抓取表单Type=Table
利用Type=Table
以抓取优采云票余票信息为例子。
网址链接:
在选择器中选择Type=Table,Selector选择整个表格。
Header row selector,选择表头,这例子中选择数据第一行为表头,再修改表头的名字,如果选择第一行为表头的话,只能抓取出发地、目的地、余票数量三个元素,详细的每日余票量抓取不了。
修改表头的标注
Data rows selector中选择所以抓取的数据项。
7.Delay的设置
在操作过程中,但选择器多了之后,大家会看到很多Delay的设置,下面说说需要设置Delay的情况。
点击Scrape后,这里的Delay,它针对的是全局,所有链接发生变化的情况。
点击分页、加载更多、滚动下拉这类页面需要时间加载是,就设置delay,推荐2000ms。
元素集中的子选择器可以不设置delay。
小结
讲解了web scraper的进阶操作后,是不是发现又有很多网站数据可以抓取了。
进阶篇中主要的知识点有:
1.根据抓取元素的不同情况,选择不同的Type
2.选择树Selector graph
选择器之间的逻辑关系。
3.选择快捷键Enable key
4.Delay的设置
页面需要时间加载的情况设置Delay,元素集中的子选择器可以不设 置。
5.子选择器中的Multiple不用勾选
6.常见的问题
操作过程中会需要两个常见问题:
思考题
在知乎例子的这个抓取结果中,回答正文中,没有把回答的全文抓取完。在网站上“阅读全文”这四个字需要用鼠标点开,爬虫才能把全部回答抓取完,怎么设置这个选择器呢?
大家可以先思考,尝试自己操作一下。
公众号回复“答案”,就可获取具体的操作步骤。
注:我学习课程为三节课的《人人都能学会的数据爬虫课》,此次仅为纯粹的学习分享。
搬运工的苦劳
苹果专用赞赏二维码