技术文章:简易数据分析(六): Web Scraper 翻页——抓取「滚动加载」类型网页

优采云 发布时间: 2022-09-22 23:21

  技术文章:简易数据分析(六): Web Scraper 翻页——抓取「滚动加载」类型网页

  Tuque 社区推荐搜索关键词列表:简单数据分析 JavaScript 测试 Koa

  友情提示:这篇文章文章内容很多,信息量很大。希望大家在学习的时候多看几遍。

  我们在刷朋友圈和微博的时候,总是强调“刷”两个字,因为看动态的时候,当内容被拉到屏尾时,APP会自动加载下一页的数据。从体验上看,数据会不断加载,永无止境。

  今天我们要讲的是如何使用Web Scraper来抓取滚动到末尾的网页。

  今日练手网站是知乎数据分析模块的精华,网址为:

  本次要抓取的内容是精选帖的标题、回复者和点赞数。下面是今天的教程。

  1.创建站点地图

  一开始,我们需要创建一个容器,其中收录三种要捕获的数据。为了实现滚动到最后加载数据的功能,我们选择容器的Type为Element scroll down,即滚动到网页底部加载数据。 .

  在这种情况下,所选元素被命名为 div.List-item。

  为了回顾通过数据数控制记录数的方法,我们在元素名后面加上nth-of-type(-n+100),暂时只抓取前100条数据。

  然后我们保存容器节点,选择该节点下的三种数据类型进行抓取。

  首先是标题,我们命名为title,选中的元素命名为[itemprop='知乎:question'] a:

  然后是响应者的名字和点赞数,选中的元素名称分别是#Popover10-toggle a和button.VoteButton--up:

  2.爬取数据,发现问题

  

  元素全部选中,我们按照Scrape的路径->开始scrape爬取数据,等了十多秒结果出来后,内容让我们傻眼:

  数据呢?我要捕获哪些数据?怎么都变成空了?

  在计算机领域,null一般表示空值,表示什么都没有。放置在 Web Scraper 中时,表示尚未捕获任何数据。

  我们可以回忆一下,网页上确实有数据,而我们整个操作中唯一的变量就是选择元素的操作。因此,一定是我们选择元素时出错,导致内容匹配出现问题,无法正常爬取数据。要解决这个问题,我们需要看一下页面的构成。

  3.分析问题

  要查看网页是由什么组成的,使用了浏览器的另一个功能,即选择视图元素。

  1.我们点击控制面板左上角的箭头,箭头颜色会变成蓝色。

  2.然后我们将鼠标移到标题上,标题会被蓝色半透明蒙版覆盖。

  3.我们再次点击标题,会发现我们会跳转到Elements子面板,里面有一些五颜六色的代码,很难看懂

  不要害怕在这里这样做。这些 HTML 代码不涉及任何逻辑。它们只是网页中的一个骨架,提供一些排版功能。

  如果你平时用markdown写,可以把HTML看成是功能更复杂的markdown。

  结合HTML代码,我们来看看[itemprop='知乎:question'] a的匹配规则。

  首先这是一个树形结构:

  从可视化的角度来看,上一句其实是一个嵌套结构。我提取了关键内容。内容结构是否清晰很多?

  <br />    <br />        <a>如何快速成为数据分析师?</a><br />    <br />

  让我们再分析一个获取空标题的标题 HTML 代码。

  我们可以清楚地观察到,在这个标题的代码中,缺少属性itemprop='知乎:question'的名为div的标签!

  这样,当我们的匹配规则匹配时,找不到对应的标签,Web Scraper就会放弃匹配,认为找不到对应的内容,所以变成了null。

  一旦找到原因,我们就可以解决问题。

  

  4.解决问题

  我们发现,在选择标题时,无论标题的嵌套关系如何变化,总有一个标签是不变的,就是最外层包裹着一个名为class='ContentItem的属性的h2标签-标题'。

  如果我们可以只选择h2标签,那岂不是与标题内容完美匹配?

  关系理清了,Web Scraper怎么操作?这时候我们就可以使用介绍的内容,使用键盘P键选择元素的父节点:

  在今天的课程中,我们点击P键两次匹配标题的父标签h2(或h2.ContentItem-title):

  等等,因为被访者的名字也出现了null,我们分析HTML结构,选择名字的父标签span.AuthorInfo-name,具体分析操作和上面类似,大家可以试试.

  我的三个子内容选择器如下,可以作为参考:

  最后我们点击Scrape爬取数据,查看结果,没有null,完美!

  5.吐槽时间

  在爬取知乎数据的时候,我们会发现滚动加载数据很快,但是匹配元素需要很多时间。

  这个间接解释,知乎这个网站从代码分析的角度来看,写的还是比较差的。

  如果你爬了很多网站,你会发现大部分网页的结构都比较“随心所欲”。所以在正式抓取数据之前,往往需要进行小范围的尝试,比如先抓取20条记录,看看数据有没有问题。没问题后,可以加一个*敏*感*词*的正式取,一定程度上可以减少返工时间。

  6.下一期

  本期内容很多。你可以多读几遍来消化它。下一期我们会讲一些简单的内容,以及如何抓取表格内容。

  <p style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;letter-spacing: 1.5px;line-height: normal;">● 简易数据分析(四):Web Scraper 抓取多条内容

  ● 简易数据分析(二):Web Scraper 初尝鲜,抓取豆瓣高分电影

  ● 简易数据分析 (一):源起、了解 Web Scraper 与浏览器技巧

  <br /></p>

  ·END·

  图克社区

  精彩的免费实用教程合集

  近期发布:大数据抓取软件2022已更新(今日/分类信息)

  西安飞西百讯网络科技*敏*感*词*介绍大数据采集软件2022已更新(今日/分类信息)[z5VxxF]

  

  大数据采集软件2022已更新(今日/机密信息)

  ‍运营商大数据-运营商精准大数据-运营商精准大数据-运营商大数据采集-运营商大数据-电信运营商大数据

  

  现在解释一下什么是运营商大数据。

  首先,了解运营商的大数据,就像中国移动、中国联通、电信的数据一样,属于同行。他做了网站,做了一个app,做了一些h5网页,就像说我们有一样的他们都在做这个教育。我想直接带你的客户。我怎样才能得到它们?

  alt="运营商大数据" />

  有一些客户通过你的网站浏览你的产品信息,很感兴趣,留下线索,留下表格,给你打400或者座机,这些数据就是你花广告钱推广的。

  我可以在这里买到吗?有必要使用运营商大数据。首先,我们通过中国移动、中国联通、电信的端口来获取这些信息,因为只要它使用这个网络和宽带,我们就可以获得它的信息数据。当然,说到数据,它不能给你完整的数字。就是给你搭建系统,搭建系统和后台,需要登录账号和密码。今天 采集 的数量。数据。明天早上,您将使用系统绑定您的手机联系客户。我们一般会保存两到三个月。给你的号码是一个隐藏号码。你不能给出完整的数字。提供完整号码是非法的。的。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线