抓取网页新闻(《MetaSeeker速成手册》之博文翻页抓取多个URL映射的注释)

优采云 发布时间: 2021-12-23 09:12

  抓取网页新闻(《MetaSeeker速成手册》之博文翻页抓取多个URL映射的注释)

  相关博文

  翻转页面以抓取多个标签。之前爬取到二级URL时,停止爬取过程

  注1:可以使用MetaStudio加载信息结构demo_cnbeta_list,阅读更容易理解。请注意,登陆页面的结构可能会发生变化,这可能会导致信息结构加载失败。修改信息结构请参考“修改无效信息结构”。

  注2:本文不是介绍性教程。如果您不熟悉MetaSeeker,建议按章节顺序阅读《MetaSeeker 快速指南》。

  1 抓取新闻摘要数据

  

  首先,您需要定义数据捕获规则。所谓的数据抓取规则指定了如何从网页中抓取新闻列表数据。图 1 显示了数据映射和 FreeFormat 映射的过程。主要步骤如下:

  以新闻列表中的第一条新闻为例。数据映射和 FreeFormat 映射都在其上执行。为了捕获新闻数据,执行数据映射和FreeFormat 映射。不需要 FreeFormat 映射。如果网页有DOM节点语义,可以使用@class或@id属性来准确定位抓取到的内容,然后进行FreeFormat映射。详细操作流程请参考《抢京东商品价格》。为了抓取新闻列表中的每一条新闻,都会进行FreeFormat映射,也就是所谓的多实例抓取。FreeFormat 映射不是唯一的方法。这个页面的每条新闻都有@class="newslist",非常适合捕获多个实例。如果您没有合适的 FreeFormat,您可以使用示例复制方法。参考“获取当当商品价格”设置至少一个信息属性的关键特征。关于主要功能的说明,请参阅“MetaStudio 用户手册”。设置关键特性后,DataScraper 可以在加速模式下运行,以提高爬行速度。如果不勾选DataScraper的菜单项“Configuration”->“Normal Mode”,DataScraper将进入加速模式。

  2 抓取新闻详情页

  

  我们在《抢夺》一文中已经讲过如何捕捉二级话题的线索。图 2 再次显示了捕获下一级线索的方法。设置线索功能后,会在线索编辑器工作台上自动创建。对于Info类型的线索,在Clue Editor工作台上,将下一级主题命名为demo_cnbeta_detail(如图3).

  

  定义 Info 类线索的目的有两个:

  进行分层爬取,爬取新闻列表后爬取详细的新闻内容。为避免重复爬取,当发现超过设定的重复率时终止爬取过程,后面章节会详细说明

  3 翻转页面以抓取多个标签

  

  为了翻页并抓取所有标签,您需要创建一个线索。图 4 显示了主要步骤。详情见《抢当当商品价格》:

  将代表整个分页区域的 DOM 节点映射到这条线索上,相当于指定了一个网页区域,该区域可以定位页面超链接。我们使用标记线索类型来定位翻页线索,“下一页”是标记值进行标记映射,在Clue Editor工作台中会自动填写标记值和标记节点序号来设置内联线索类型,该类型主要用于翻页,一旦选中该类型,当前主题名称将自动填入目标主题名称输入框。

  4 设置 AJAX 捕获模式

  

  如图5所示,选择MetaStudio菜单“Configuration”->“Active Mode”设置AJAX捕获模式。

  在《亚马逊卓越分页抓取》一文中,我们同时设置了“主动模式”和“扩展模式”,两种模式并没有捆绑在一起。这个目标网站 不是每次翻页都加载另一个网页,而是部分修改网页的内容。因此,设置“扩展模式”是没有意义的。

  5 只获取最新消息

  通常我们会每隔一段时间(例如一天)抓取新闻列表。如果我们发现新消息,我们将抓取 URL 并创建下一级线索来抓取最新的新闻内容。如果您发现新闻列表中的所有新闻都是以前抓取的新闻,请停止页面抓取。这需要使用周期性的自动爬取方法。需要编辑。此文件必须命名为 crontab.xml 并存储在 $HOME/.datascraper 目录中。目录结构的详细说明请参考《抓当当商品价格》。以下是 crontab.xml 文件的内容:

  

true

5

3600

false

demo_cnbeta_list

demo_cnbeta_list

false

80

-1

-1

false

true

23

1800

false

demo_cnbeta_detail

false

80

-1

-1

false

  demo_cnbeta_list爬取话题的dupRatio参数和“只爬取最新消息”有关,80的意思是80%,也就是说,如果你发现这个URL被爬了3个连续页面的时候翻页爬取如果之前已经爬取了80%的地址,则终止翻页爬取。

  注1:当前版本的MetaSeeker只能判断抓取到的下一级线索的重复率,不能判断抓取到的数据的重复率。

  注意2:请不要直接使用上面的crontab.xml,因为MetaSeeker服务器上还没有定义demo_cnbeta_detail信息结构,会导致周期性的爬取失败。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线