火车头采集中经常遇到分页采集,普通的分页采集大家可以很容易的处理,但是如果是post分页采集那就需要借助其他的一些火车头插件或者程序来处理了,下面以

顺德房产网http://house.shunde.net.cn/sellhouse.aspx 为实例,需要你掌握一些php的基础知识

这类post分页与普通的不同就是在于,post数据中分页部分并不是一页页递增的,而是每10页是一栏(每一栏分页部分是递增的),到第11页要点击翻栏的按钮

触发的函数是有些不同的,相当于上下栏按钮而不是上下页按钮,点击一下会跳到下一栏的第一页,路从第1页点这个按钮是跳到第11页,第2栏;
前1-10页是__doPostBack(‘dgMain$ctl28$ctl00′,”)—–__doPostBack(‘dgMain$ctl28$ctl10′,”)
11-20页 __doPostBack(‘dgMain$ctl28$ctl01′,”)————-__doPostBack(‘dgMain$ctl28$ctl10′,”) 路痴循环不变,并没有递增,而且$ctl00 后面00是采用补0的方式,火车头分页设置不了

还有它的

其中的…,左边…点击换到上一栏的最后一页,右边的…点击会翻到下一栏的第一页,而左…的点击函数 是:__doPostBack(‘dgMain$ctl28$ctl00′,”)  ; 右…是:__doPostBack(‘dgMain$ctl28$ctl11′,”),这要到第11页以后,不是前10页,我想可能是通过返回的 __VIEWSTATE控件记录了当前的状态的,肯定有些东西记录了是第几页,要不服务器端怎么知道

1-10页换到第2栏是__doPostBack(‘dgMain$ctl28$ctl10′,”)

具体采集办法:本地建立php环境,可以下载wampserver一键安装包 地址:http://www.wampserver.com/en/download.php,php需要开启 curl扩展,默认关闭

然后用php脚本模拟对这个网站发送post数据,获取一页就生成为相应的html,保存在本地网站目录C:/wamp/www

php文件执行后生成的html文件:见图

执行的效果图:

处理顺德房产网分页的php文件:fenye.php  放在C:/wamp/www,需要提供获取页数的参数yeshu,以get提交给 fenye.php,由于这个网站总页数84页,所以我提交了84,运行的时间会很长,最终效果是达到了,生成的html是相应的分页数据

生成了每页的html 文件,这样就可以用火车头采集了,自定义组合成正确地址,html是从1.html———84.html  ,这样直接采集这些html就获取了所有的内容页了



解压后把fenye.php  放在C:/wamp/www(安装wampserver后的运行目录),并给其fenye.php?yeshu=84  yeshu是要获取的分页数


附件 暂无