zhouchanglin 发表于 2011-5-10 17:03:26

post分页网站中比较特殊的一类采集解决办法

本帖最后由 zhouchanglin 于 2011-5-10 22:06 编辑

就是80s手机电影网(本来想做这个网的,竟打不开了)http://www.y80s.com/ 和 顺德房产网http://house.shunde.net.cn/sellhouse.aspx(我做的是这个的,80s网站打不开,分页方式是一样的),以前遇到过这样类型的post分页,可都还不能解决,现在我学了点php 的curl ,与网站建立连接的获取源码的方法,可以解决这类网站了

这类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就获取了所有的内容页了



顺德房产网分页的php文件下载:,解压后把fenye.php放在C:\wamp\www(安装wampserver后的运行目录),并给其fenye.php?yeshu=84yeshu是要获取的分页数


最后得到的顺德房产网全部内容页txt:解压,可以导入火车头使用

修改:由于没有看到到最后一栏81页以后的变化,先前的到第82页以后都出错了,这是修改后的,可以正确获得82 83 84页

303718 发表于 2011-5-10 17:16:42

支持一下了,广告位不出租。

allxyz 发表于 2011-5-12 10:00:40

谢谢分享!学习了。

victorchl 发表于 2011-5-15 10:14:37

学习ing还真不好懂啊

xiaolao 发表于 2011-5-27 20:55:18

这个不错,学习。。

云旎 发表于 2011-5-27 23:34:17

看得眼花缭乱也没看明白

zhouchanglin 发表于 2011-5-28 14:23:56

就是那个网站是10页一栏,翻到下一栏只能按最右的。。。,火车头无法直接post出来,只能post前10页,到下面的页,就循环前一轮的分页数字;,我那个文件分页数字处理的不是很好,还有些问题

hengsheng 发表于 2011-6-15 11:28:40

恩 不错~!!!!

assp 发表于 2011-6-15 12:57:25

{:4_185:}学习才能进步!

zhangxiang 发表于 2011-6-27 11:45:40

楼主的教程真是实用,教会我们不少东西。谢谢。
页: [1] 2
查看完整版本: post分页网站中比较特殊的一类采集解决办法