【问题标题】:Scrapy - How to scrape a website when access is denied [Lowes]Scrapy - 当访问被拒绝时如何抓取网站 [Lowes]
【发布时间】: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


【解决方案1】:

我所要做的就是添加用户代理。

1.) 安装轮换用户代理:

pip3 install scrapy-useragents

2.) 在 settings.py 中添加代码

DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
    'scrapy_useragents.downloadermiddlewares.useragents.UserAgentsMiddleware': 500,
}
# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENTS = [
    ('Mozilla/5.0 (X11; Linux x86_64) '
     'AppleWebKit/537.36 (KHTML, like Gecko) '
     'Chrome/57.0.2987.110 '
     'Safari/537.36'),  # chrome
    ('Mozilla/5.0 (X11; Linux x86_64) '
     'AppleWebKit/537.36 (KHTML, like Gecko) '
     'Chrome/61.0.3163.79 '
     'Safari/537.36'),  # chrome
    ('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) '
     'Gecko/20100101 '
     'Firefox/55.0'),  # firefox
    ('Mozilla/5.0 (X11; Linux x86_64) '
     'AppleWebKit/537.36 (KHTML, like Gecko) '
     'Chrome/61.0.3163.91 '
     'Safari/537.36'),  # chrome
    ('Mozilla/5.0 (X11; Linux x86_64) '
     'AppleWebKit/537.36 (KHTML, like Gecko) '
     'Chrome/62.0.3202.89 '
     'Safari/537.36'),  # chrome
    ('Mozilla/5.0 (X11; Linux x86_64) '
     'AppleWebKit/537.36 (KHTML, like Gecko) '
     'Chrome/63.0.3239.108 '
     

'Safari/537.36'), # 铬 ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多