NO.4 火车头爬取动态网址

部分网站在切换标签和翻页的时候,网址并不会改变,这类网站具有良好的交互性,在更新局部内容时不需要刷新页面,这也给爬取这类网站内容增加了一定难度。

一、Get方式获取下一页内容

a-axun.com为例,抓取其设计案例的标题及图片,这个网站是瀑布流布局的网站,在网页底部点击show more按钮来继续加载下一页的内容(滑到底部自动加载下一页的网站与此类似),而网址并没有发生改变,要抓取下一页的内容必须先得到下一页的真实地址,此处要用到Fiddler抓包工具。

15336878558411

  1. 打开fiddler,在浏览器内输入a-axun.com的网址http://www.a-xun.com, 此时fiddler开始自动更新计算机产生的网络连接,找到host为http://www.a-xun.com的连接,即可看到此次连接的详细信息。
  2. 将网页滑倒底部,点击show more按钮,观察fiddler抓取到的新连接,可以发现,点击show more按钮后,电脑向http://www.a-xun.com/page/2发出了Get请求,这便是第二页的地址;继续show more按钮,可以得到其他页的地址:
    http://www.a-xun.com/page/3
    http://www.a-xun.com/page/4
    可以发现,这些地址都是通过改变page的参数来获取下一页的链接。
  3. 在火车头中构造等差数列网址作为起始网址即可开始抓取数据,其他操作步骤与之前所讲的内容大致相同,不再赘述。

二、Post方式获取下一页内容

有时候抓取的网站分页不仅网址不变,连抓包获取的地址也是一样的,这时的解决办法可以查看网页发送的数据cookie是否有所差别。

  1. 杭州人才网为例,在切换分页时,其网页地址不变,而检查fiddler 的抓包数据,其连接的真实地址也未发生变化。
  2. 此时检查Post方式发送的cookie数据,可以看到不同分页发送的cookie数据中pageNo的参数有所变化,而其他参数均相同。

  3. 打开火车头采集器,将http://www.hzrc.com/ww/b/c/wwbc_result.html输入作为初始网址,点击浏览器登录获取cookie;添加多级网址获取,选择Http请求方式-POST。
  4. 复制fiddler抓取的cookie,粘贴在发送的数据一栏中,将pageNo参数替换为[分页]标签,设置分页标签的值。(注:若除了分页值,cookie参数中还有其他值不同,可以用[Post随机值标签]替换,然后在网页源代码中找到此值区间,在右边调用标签区域截取

    5.设置采集内容规则,发布内容与之前文章的操作类似,注意使用Post方式需要设置网页编码,在此不再赘述。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s