post分页的问题
求助原帖地址 http://bbs.locoy.com/spider-63092-1-1.htmlhttp://www.anccnet.com/productlist.aspx?f_id=F25F56A9F703ED74C88AA64403D14BE99A38FE6393D043674E6F04046E3A5C66
这是某个我要采集的页面,我要采集里面的每个商品的5项信息。这个已经做好了。
我的问题是,类似这样的要采集的页面有很多,而每个页面都是post方式采集,分页标签要设置不同的页数。
假如我有10万个这样要采集的页面,是不是只能是设置10万个采集页面了?
今天我想到一个问题,分页为什么需要设置呢?我想能不能这样,假如原来采集1-10页,设置1和10,现在10的位置可以空着,表示无限继续采集下去,当遇到最后一页采集为空的时候,也就是说没有这页,这时候停止采集,如果想就采集到多少页,那就设置多少页。这样可以吗?
因为我要采集的这个网站有搜索次数限制,所以如果分页这是1-1000来达到都采集,会很麻烦,而且有些只有1页,设置太多页面也浪费。 还只有通过设置页数来解决,您说的通过最后一页留空的办法很好,但实际操作会出现最后一页变化情况不明显,比如并非404而显示自定义的信息,或跳转到其他页显示,或者如百度的搜索不管分页多大结果 长期显示最后一页。 本帖最后由 happydescant 于 2011-7-11 15:10 编辑
是的,我也想到了,这个问题。根据采集的情况,只能出现多种情况中的一种情况。那么就可以设置遇到这种情况停止。
如果显示自定义信息,可以通过设置到“指定信息”止。
如果最后一页显示信息是不变的,可以设置最后一条信息重复止。就是保留当次采集最后一条信息的某个标签,如果下一页这个标签相同,则说明这一页重复了,停止。
还有最多的情况应该是采集不到信息吧。停止。这个最简单了,先支持这个吧 还有我的解决方法。
如果按照下面这样做可以吗?外部程序能让火车头开始采集吗? 有人能做一个这样通用的软件吗?
设置字段 地址 上次总页数 总页数 完成
假定要运行的任务为“任务A”
1 从“地址”中读取一条地址,“完成”标记=未执行
2 数据库Config,表job,jobname=“任务A”,PostPapeEnd=1,
3 运行任务
4 等待任务停止
5 查看数据库SpiderResult,content表,总页数字段(下面实际举例)
6 记录总页数=78,上次总页数为空,所以本次采集所有页面,PostPapeEnd=78,上次总页数也记录为78
7 执行 3
8 第二遍,若总页数为78,上次总页数也为78,则执行 1 ,
9 如果总页数=78,上次总页数=77,则PostPapeEnd=差值+1=2,执行3 历史帖子回顾中。
页:
[1]