【问题标题】:Python Scrapy - How to reset the connection mid crawl?Python Scrapy - 如何在爬网中重置连接?
【发布时间】:2018-02-10 03:52:10
【问题描述】:

我在 python 3 上使用 scrapy,我正在抓取的网站不允许通过蜘蛛登录他们的 robots.txt 文件。同样在一些请求(32)之后,他们开始阻止我想要访问的数据,要求登录。

我需要抓取几千页,所以我想知道是否有办法在 scrappy 中停止抓取一些页面后,断开连接,等待几秒钟并重新连接。如果不是,那么处理我现在的情况的最佳方法是什么?

【问题讨论】:

  • 可以在settings.py文件中设置ROBOTSTXT_OBEY = False
  • 这有点像我想尝试的最后一个资源。我宁愿尊重 robots.txt 文件。我在 settings.py 文件中尝试了“COOKIES_ENABLED=False”,到目前为止似乎工作正常。
  • 那么你可以尝试从user_agent池中随机分配user_agent
  • 那有什么作用?
  • 尝试轮换 IP 以及不同请求的用户代理字符串

标签: python web-scraping scrapy


【解决方案1】:

关于避免 robots.txt - 从技术上讲,您可以设置

ROBOTSTXT_OBEY = 假

在 Settings.py 中。但是,不确定这是否是合法的好选择。

关于抓取的间隔 - 如果您可以分享一段代码,那将会很有帮助。此外,如果您使用任何循环,那么将有一个选项。

Crawler 是后端进程,并且本身就是一种报废类型,因此经验法则之一是尊重您的爬虫所在的站点。有时它也会影响网站的性能。您应该查看此链接以获取更多详细信息 - https://www.scrapehero.com/how-to-prevent-getting-blacklisted-while-scraping/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多