【发布时间】:2021-04-14 23:43:24
【问题描述】:
所以我正在尝试为 Lowe's 网站创建一个网络爬虫,但该网站似乎不允许使用机器人。
在 scrapy shell 上运行时,我得到:twisted.internet.error.TimeoutError: User timeout caused connection failure:
然后我运行命令:curl -v "https://www.lowes.com/pd/ZLINE-KITCHEN-BATH-ZLINE-24-2-8-cu-ft-Dual-Fuel-Range-with-Gas-Stove-and-Electric-Oven-in-Stainless-Steel-and-Blue-Gloss-Door/5001835677?cm_mmc=shp-_-c-_-prd-_-app-_-google-_-pla-_-186-_-soscooking-_-5001835677-_-0&placeholder=null&ds_rl=1286981&ds_rl=1286890&gclid=Cj0KCQjwgtWDBhDZARIsADEKwgO2jVgLDGJ3y9HjEm0yMpBhpji08IdDK_g1vODT42ZrVZ-kPm5aISYaAuHpEALw_wcB&gclsrc=aw.ds"
最后我被网站拒绝了。
经过一些研究,我发现如果我模拟成为“真实用户”,所以我尝试了这个(设置位置 cookie)
headers={'Cookie': 'sn=2333;'}, #Preset a location
meta={'dont_merge_cookies': True, #Allows location cookie to get through
'url':url}
但是这仍然让我遇到同样的超时错误。
但我也不确定我应该寻找什么或过滤什么。 是否有任何文档或任何提示任何人都必须使用 scrapy 模拟真实用户?
感谢您的帮助!
【问题讨论】:
-
尝试使用与浏览器完全相同的标题。
-
@david 用户代理对吗?
-
不仅是代理,还有所有的标头值和参数
标签: python curl web-scraping scrapy