何为post网址?就是一般用了ajax或.NET中的一些技术当你请求新内容时,页面只进行局部刷新,地址栏中的URL不变。
我们处理此类采集时的思路就是用抓包工具,截取请求时提交的内容找出共同特点,
用火车中的“分页”变量进行替换并给定值范围,这样火车在采集时会自动提交请求内容得到新的内容列表进行采集。
我们着重讲解怎么样抓包,抓哪的包及如何处理抓包得到的数据。
内容的采集和普通页面一样,在此就不多说了。
抓包工具:fiddler
下载地址:http://www.telerik.com/download/fiddler
方法/步骤
(1)下载安装抓包工具fiddler
(2)我们用浏览器打开要抓取的页面,例如 http://www.ditan360.com/News/List.aspx?ColumnPageID=15 当你进行翻页时就会发现此页是用post提交翻页请求的,网址不变化。
(3)打开fiddler工具
如图,点击开启抓包模式,在点击左边列表,CTRL+X清空数据流。
(4)此时,我们操作浏览器 点击下一页,用fiddler抓包,找POST类型的网址,点击View in Notepad 以文本的形式展现。重复这一步骤,点击左边列表,CTRL+X清空数据流。操作浏览器 再点击下一页,用fiddler抓包,找POST类型的网址,点击View in Notepad 以文本的形式展现。
(5)接下来我们来分析2次点击下一页,所得出的数据包的区别
先起始地址,cookie,user-agent 对应设置
分析发现,我们数据包的格式为:
字段名1=字段值1&字段名2=字段值2&字段名3=字段值3……
中间是&符号连接的。
所以我们可以通过查找&符号,分析下2次数据包里字段值不同的地方。
对比发现 VIEWSTATE 和EVENTVALIDATION 的值每次都是变化的,且无规律的所以在这里我们给定义成随机值,分别为 [POST随机值1] ,[POST随机值2] 。
PageList1%24ListPage1%24ctl06 字段值每次是根据当前页数字变化的,我们用 [分页] 表示
如图,这就是我们整理好的POST数据包,放入软件即可:
(6)定义随机值范围
在浏览器网页,右击,查看源代码,搜索 __VIEWSTATE 和 __EVENTVALIDATION 的值的截取前后位置
由此我们可以确定,开始字符串为 id="__VIEWSTATE" value="
, 结束字符串为 " />
其他的随机值定义原理类似设置效果
这样一个完整的POST采集就设置好了
规则参考附件: POST采集实例下载