【2022.06.04】huginn对动态网页进行爬取


前言

下载了别人的scenarios,Huginn.io (huginnio.herokuapp.com),想看看数据是怎么进行传输的,最后怎样生成RSS

结果发现该链接已经变成了动态网页,不能使用静态获取

那么就顺便学习一下怎么爬取动态网页吧

Phantom Js agent

注册

进入网站进行注册,只要邮箱就行,每日有500次的爬取次数,这个网站是可以正常访问的

PhantomJsCloud API Service - It just works!

注册好了就可以得到apikey

接下来就是增加一个全局变量

创建好了并保存

创建agent

在type中找到phantomjs

进入要爬取的网页,复制自己的UA

在选项中填入以下内容

试运行一下,是可以获取到内容的

也可以进入该网页查看内容

网页agent

这个是最常用的agent

Propagate immediately 要勾上,意思是说,如果上一个source产生event后,立即运行该agent

sources填写上个agent

进入上一步获取的event的url之中,开始修改

由这里可以得到我们要的标题和链接位置均为

//*[@class='feed-nowrap']

在元素控制台使用ctrl+f验证一下位置对不对

在options里面填入以下内容

{
  "expected_update_period_in_days": "2",
  "url_from_event": "{{url}}",
  "type": "html",
  "mode": "on_change",
  "extract": {
    "title": {
      "xpath": "//*[@class='feed-nowrap']",
      "value": "@title"
    },
    "url": {
      "xpath": "//*[@class='feed-nowrap']",
      "value": "@href"
    },
    "price": {
      "xpath": "//*[@class='z-highlight']",
      "value": "text()"
    }
  }
}

记得要选一个最近的event再进行试运行

试运行一下,可以得到以下数据

RSS agent

到了最后一步生成数据,先使用DataOutputAgent吧

导入RSS阅读器

在最后的event中,点击show,得到xml链接

xml链接,导入阅读器则可以得到如下内容

参考链接

RSS 进阶篇:Huginn - 真·为任意网页定制 RSS 源(PhantomJs 抓取) - 知乎 (zhihu.com)

Huginn.io (huginnio.herokuapp.com)