抓取网页数据违法吗(2.-toggle爬取数据,发现问题元素都选择好了)

优采云 发布时间: 2022-03-20 06:26

  抓取网页数据违法吗(2.-toggle爬取数据,发现问题元素都选择好了)

  这是简易数据分析系列文章的第10期。

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

  我们在朋友圈刷微博的时候,总是强调“刷”这个词,因为在看动态的时候,当内容被拉到屏尾的时候,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. 爬取数据,发现问题

  元素全部选中,我们按照Sitemap 知乎_top_answers -> Scrape -> Start craping 的路径爬取数据。等了十多秒才看到结果,内容让我们傻眼了:

  数据呢?我要捕获哪些数据?为什么这一切都变成了空?

  在计算机领域,null一般代表一个空值,表示什么都没有。当放置在 Web Scraper 中时,这意味着没有捕获任何数据。

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

  3.分析问题

  要查看一个网页的构成,我们需要用到浏览器的另一个功能,就是选择视图元素。

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

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

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

  这里不要害怕,这些HTML代码不涉及任何逻辑,它们只是网页中的一个骨架,提供一些排版功能。如果平时用markdown写,可以把HTML理解为markdown,功能更复杂。

  结合HTML代码,我们看一下匹配规则[itemprop='知乎:question']

  首先这是一个树结构:

  首先是一个名为 h2 的标签

  ...,它有一个 class='ContentItem-title' 属性;

  里面还有一个叫div的标签

  ...

  , 它有属性 itemprop='知乎:question';

  在 div 标签中还有一个名为 a 的标签...;

  a标签里有一行,就是我们要抢的标题:如何快速成为数据分析师?

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

  如何快速成为一名数据分析师?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线