数据抓取学习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.常见的问题

  操作过程中会需要两个常见问题:

  思考题

  

  在知乎例子的这个抓取结果中,回答正文中,没有把回答的全文抓取完。在网站上“阅读全文”这四个字需要用鼠标点开,爬虫才能把全部回答抓取完,怎么设置这个选择器呢?

  大家可以先思考,尝试自己操作一下。

  公众号回复“答案”,就可获取具体的操作步骤。

  注:我学习课程为三节课的《人人都能学会的数据爬虫课》,此次仅为纯粹的学习分享。

  搬运工的苦劳

  苹果专用赞赏二维码

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线