Scrapy Link Extractor规则

时间:2018-03-22 19:29:30

标签: scrapy

我使用链接提取器规则进行蜘蛛设置。蜘蛛爬行并刮擦我期望的物品,尽管它只会跟随“下一步”。分页按钮到第3页,然后蜘蛛完成没有任何错误,总共有50页要通过' Next'分页。 这是我的代码:

p = [1,2,3]
q = [6,5,4]
r = [7,8,9]
s = [8,9,10]
t = [9,10,11]

def d (*args):
    maxv = [max(li) for li in [x for x in args]]
    print( maxv )
    product = functools.reduce(lambda x,y: x*y, maxv)
    print( product )

d(p,q,r)   # yields 162
d(p,q,r,s) # yields 1620
d(p,q,r,s,t) # yeilds 17820

感觉我可能会错过设置或其他东西,因为代码的功能与前3次迭代的预期相同。我的设置文件没有覆盖DEPTH_LIMIT默认值为0.任何帮助都非常感谢,谢谢。

编辑1 它似乎与我的代码没有任何关系,好像我从一个不同的产品页面开始,我可以在蜘蛛退出之前获取最多8页。不确定我是抓取的网站还是如何排查?

编辑2 对它进行故障排除可能会出现在我的“下一步”中。链接从网页上消失。当我从第一页开始时,存在分页元素以转到下一页。当我查看下一页的响应时,没有产品,也没有下一个链接元素,所以蜘蛛认为它完成了。我已经尝试启用cookie以查看该网站是否需要cookie才能进行分页。这没有任何影响。这可能是时间问题吗?

编辑3 我已经调整了下载延迟和并发请求值,看看是否有所作为。无论我是在1秒钟还是30分钟内拉出数据页面,我都会得到相同的结果。我假设30分钟足够慢,因为我可以手动比它更快。

编辑4 试图在调试模式下启用cookie和cookie中间件,看看是否会产生影响。提取cookie并随请求一起发送,但在尝试浏览页面时我会得到相同的行为。

1 个答案:

答案 0 :(得分:1)

要检查网站是否在短时间内拒绝了太多请求,您可以将以下代码添加到您的蜘蛛中(例如,在您的rules声明之前)并使用该值。另请参阅优秀的documentation

custom_settings = {
    'DOWNLOAD_DELAY': 0.4
}