首页 > 解决方案 > scrapy shell:我只看到打开了蜘蛛,然后我得到了 Zalando 页面的时间

问题描述

当我在scrapy shell中运行时:

fetch('https://www.google.nl')

然后我得到一个正常的响应:

2020-11-19 12:42:00 [scrapy.core.engine] INFO: Spider opened
2020-11-19 12:42:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.google.nl> (referer: None)

但是当我为 Zalando 页面执行此操作时,例如:

fetch('https://www.zalando.de/nike-sportswear-pant-jogginghose-ni121a09o-c11.html')

然后我只看到:

2020-11-19 12:46:06 [scrapy.core.engine] INFO: Spider opened

过了一会儿,我得到了超时。为什么这不适用于 Zalando 页面?或者:我应该改变什么来完成这项工作?

标签: pythonscrapyscrapy-shell

解决方案


在您的请求标头中包含一个用户代理,这对我来说很好:

from scrapy import Request
url='https://www.zalando.de/nike-sportswear-pant-jogginghose-ni121a09o-c11.html'
req = Request(url, headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'
})
fetch(req)

可能是一种反机器人措施


推荐阅读