欢迎莅临阿Q的项目

专业WP商业设计开发销售中心

新魔法采集:QQWorld收藏家采集AJAX加载的网站

很多网站为了防采集,使用AJAX动态加载页面,虽然增加了采集的难度,但也不是完全无法采集的。通常的做法是,开发专用的魔法采集来对付,但是一些大站还好,很多小站都针对性开发一个专用魔法采集成本上实在是划 […]

所以,QQWorld收藏家 v2.2.3 Beta14 新增魔法采集:AJAX采集者。下面来介绍这个通用魔法采集是如何采集AJAX加载的网站的。

准备工作

  1. QQWorld收藏家旗舰版
  2. 要采集的网站列表页:http://web.fzmnice.net/index.php?c=article&m=lists&classId=16&u=1060505161

新建收藏项目

在QQWorld收藏家中新建空收藏项目,写上标题 复制猫 fzmnice.net。然后在来源地址采集面板中的魔法采集菜单中选择AJAX采集者,弹出下面的设置面板。

共有6处可以设置,分别是:

  1. 自动抓取的分页数:不抓取分页则只采集1页,如果设置抓取1个分页,就会共抓取2页。
  2. URL:AJAX的请求地址,可使用变量 [<page>] 来代表分页编号。
  3. 方法:有GET和POST两种,大多数情况下使用GET即可。
  4. Cookies:只有极少数AJAX请求需要带Cookies。
  5. 发送表单数据(用于post方法):少数AJAX请求是使用POST方法,这里放POST的数据,同样可以使用 [<page>] 变量。
  6. 链接正则表达式:用来获取返回结果中的文章地址和标题,标题并不是必须的。

操作实例

在Chrome浏览器中打开之前准备好要采集的网站列表页,按F12调出开发者工具,然后切换到Network选项卡。

然后将网页向下滚动,直到自动加载下一页。这时,Network选项卡中就会检测到新的网络请求,点击改请求,在右侧的Preview选项卡中可以看到正是下一页的数据,将这些数据复制到一个文本文件中保存好。

然后点击旁边的Headers选项卡,搜寻以下重要数据:

从上到下依次是:AJAX的请求地址、方法、Cookies和POST数据。在POST表单数据中,pageID 很明显就是页码的变量。

我们将这些数据按照范例的规格填到魔法采集AJAX采集者的表单中去。一般来说不需要用到Cookies,除非采集不到才需要尝试填Cookies:

最后一步,在获取到的内容中抓取文章链接和标题。找到其中循环的规则:

将这个规则复制到链接正则表达式中,将其中关键性的内容替换成通配符和变量,比如:

<dl><a href="/index.php?c=article&m=detail&id=159412_16&u=1060505161"><dt><img src="/upload/2017/10/16/2017101659e41965553e1182645820_200_132.jpg"/></dt> <dd><h3 class="colorstyleae">美乐家的产品又无意间上电视了</h3><p>污渍的“即时橡皮擦”——全新「衣物除渍棒」</p><i>2017/11/05</i></dd></a> </dl>

替换成

<a href="[<url>]">[<*>]<h3 class="colorstyleae">[<title>]</h3>[<*>]</dd></a>

最终的设置效果是:

测试采集

点击测试获取链接按钮,成功获取到了文章链接。

如果喜欢本文,请分享给朋友们