抓取网页新闻(怎样只抓取最新cnbeta数码产品新采用AJAX技术的网站越来越多)
优采云 发布时间: 2021-10-20 18:02抓取网页新闻(怎样只抓取最新cnbeta数码产品新采用AJAX技术的网站越来越多)
如何使用AJAX技术只抓取最新的cnbeta数码产品网站越来越多,我们需要通过更多案例来说明如何准确抓取Javascript/JS动态生成的内容。这次我们要在cnbeta网站上抢数码产品新闻。进入这个网站的首页,可以看到一个新闻列表,列表中有多个新闻,每条新闻包括标题、基本信息和摘要。用浏览器访问这个网页,发现新闻列表的第一页和普通网页是一样的。翻到第二页后,可以看到HTML源代码并没有随着浏览器的查看源代码功能发生变化,无论现在看到哪个Pagination,HTML源代码仍然是第一页。原来网站 使用Javascript在翻页时动态刷新新闻列表。这种情况会阻碍普通网络爬虫和普通网络爬虫的工作,因为这类网络爬虫一般都会向目标服务器发送HTTP GET。消息,获取 HTML 文档,然后使用正则表达式或 DOM 解析方法提取网页上的内容。当需要翻到其他页面时,由于其他页面没有独立的URL网址,无法发送HTTP GET消息。通过人工干预,嗅探Javascript向网站发送了什么消息,通过模拟消息获取其他页面的内容。使用MetaSeeker网络爬虫,可以完全摒弃嗅探方法,像普通网页一样抓取AJAX网站的内容。
本文还将讲解另一种抓取技巧:翻页抓取新闻列表时,假设某个页面的新闻之前已经被抓取过,则停止翻页,即只抓取最新的新闻。是跟踪论坛、博客、微博、新闻网站等最常用的技术,也是构建企业竞争情报系统的必备功能。抓取目标分析: 示例页面:名称:demo_cnbeta_list 目的是抓取新闻列表,信息结构如下: 详情页面:是一个URL网页地址,利用这个URL地址创建一个二级线索(主题名称)就是demo_cnbeta_detail),所谓的Hierarchical crawling summary page转向抓取多个页面,之前爬取二级URL的时候,停止爬行过程。注1:可以使用MetaStudio上传信息结构demo_cnbeta_list,阅读更容易理解。请注意,登陆页面的结构可能会发生变化,这可能会导致信息结构加载失败。修改信息结构请参考“修改无效信息结构”。注2:本文不是入门教程。如果您不熟悉MetaSeeker,建议按章节顺序阅读《MetaSeeker 快速指南》。要捕获新闻摘要数据,首先需要定义数据捕获规则。所谓的数据抓取规则指定了如何从网页中抓取新闻列表数据。图 1 显示了数据映射和 FreeFormat 映射的过程。主要步骤如下:以新闻列表中的第一条新闻为例。数据映射和 FreeFormat 映射都在其上执行。为了捕获新闻数据,执行数据映射和FreeFormat 映射。不需要 FreeFormat 映射。如果网页具有代表DOM节点语义的@class或@id属性,可以准确定位抓取到的内容,则进行FreeFormat映射。
详细操作流程请参考“获取京东商品价格”。为了抓取新闻列表中的每一条新闻,都会进行FreeFormat映射,也就是所谓的多实例抓取。FreeFormat 映射不是唯一的方法。这个页面的每条新闻都有@class="newslist",非常适合捕获多个实例。如果您没有合适的 FreeFormat,则可以使用示例复制方法。参考“抓当当商品价格”设置至少一个信息属性的关键特征。有关关键功能的说明,请参阅“MetaStudio 用户手册”。设置关键特性后,DataScraper 可以在加速模式下运行以提高爬行速度。如果不勾选菜单项“配置”->“ 我们将在后面的翻页和抓取多页以翻页的章节中详细说明。要抓取所有页面,您需要创建一个线索。图 4 显示了主要步骤。详情请参考《获取当当网商品价格》:将代表整个页面区域的DOM节点映射到这条线索上,相当于指定了一个网页区域。该区域可以定位到页面超链接。我们使用标记线索类型来定位翻页线索,""是标记映射的标记值,在Clue Editor工作台中会自动填写标记值和标记节点序号来设置内联线索type ,该类型主要用于翻页和抓取。一旦选择了这种类型,
设置AJAX捕获模式如图5所示。选择MetaStudio菜单“配置”->“活动模式”设置AJAX捕获模式。在“Pagination Crawling Amazon”一文中,我们同时设置了“主动模式”和“扩展模式”。这两种模式没有联系在一起。这个目标网站并不是每次翻页都加载另一个网页,而是部分修改网页的内容。因此,设置“扩展模式”是没有意义的。只抓取最新消息。通常我们会每隔一段时间(例如一天)抓取新闻列表。如果发现新的新闻,就会爬取URL,创建下一级线索,让最新的新闻内容抓取下来。如果发现新闻列表中的新闻都是之前爬过的新闻,则停止翻页爬行。这需要使用周期性的自动爬取方法。需要编辑周期取调度指令文件。此文件必须命名为 crontab.xml 并存储在 $HOME/.datascraper 目录中。目录结构的详细说明见《抓当当商品价格》。下面是 crontab。xml文件的内容:也就是说,如果连续3个页面爬取的URL地址有80%之前被爬取过,则翻页将被终止。抓住。:当前版本的MetaSeeker只能判断抓取到的下一级线索的重复率,不能判断抓取到的数据的重复率。: 请不要直接使用上面的crontab。