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

前言

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

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

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

Phantom Js agent

注册

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

PhantomJsCloud API Service - It just works!

注册好了就可以得到apikey

image-20220606091111301

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

image-20220606091223021

创建好了并保存

image-20220606091352609

创建agent

在type中找到phantomjs

image-20220606092016596

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

image-20220606092135282

在选项中填入以下内容

image-20220606092233147

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

image-20220606092449878

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

image-20220606092510722

网页agent

这个是最常用的agent

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

image-20220606101317374

sources填写上个agent

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

image-20220606094416175

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

//*[@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再进行试运行

image-20220606095537664

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

image-20220606095331320

RSS agent

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

image-20220606101757504

导入RSS阅读器

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

image-20220606103616815

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

image-20220606103526640

参考链接

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

Huginn.io (huginnio.herokuapp.com)

posted @ 2022-06-06 10:38  Mokou  阅读(491)  评论(0编辑  收藏  举报