python - 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 页面?或者:我应该改变什么来完成这项工作?
解决方案
在您的请求标头中包含一个用户代理,这对我来说很好:
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)
可能是一种反机器人措施
推荐阅读
- c++ - 在使用指向 const 和非常量方法的成员指针时减少模板特化的数量
- jquery - 如何序列化嵌套的可排序 ul 列表
- java - 使用 itext 7 将交互式复选框添加到 PDF
- react-native - 如何有条件地在 createBottomTabNavigator 中设置选项卡?
- azure - 是否可以从 Azure 数据工厂读取 Azure Databricks 表?
- react-native - onPress 导航不导航
- sql-server - 重新审视作为企业软件的 MS Access
- c++ - 字符串数据类型变量初始化
- python - Python 的 IntelliSense 无法始终如一地工作
- php - PHP "EMPTY" 常量名