【问题标题】:How to check if a url is valid in Scrapy?如何检查 url 在 Scrapy 中是否有效?
【发布时间】:2019-07-26 08:32:45
【问题描述】:

我有一个 url 列表,其中许多是无效的。当我使用scrapy抓取时,引擎会自动过滤那些带有404状态码的url,但是有些url的状态码不是404,会被抓取,所以当我打开它时,它会说这里什么都没有或者域有已更改等。有人可以告诉我如何过滤这些类型的无效网址吗?

【问题讨论】:

  • if requests.post(url).status_code !=200: print(error)
  • 嗨,这不是我要问的。 Scrapy 已经过滤了那些状态码不等于 200 的 url。我要问的是如何检查其他类型的无效 url。那些可以实际打开的,但没有任何内容或显示一些错误消息。谢谢你:)

标签: python scrapy web-crawler


【解决方案1】:
for i in list_data:
    if requests.get(i).status_code!=200:
        print error

【讨论】:

  • 如果您解释了代码如何回答问题,这将是一个更好的答案。
【解决方案2】:

在您的回调(例如parse)中实施检查以检测那些无效的 200 个响应的情况,并在您检测到其中一个请求时立即退出回调 (return)。

【讨论】:

    【解决方案3】:

    我已经做了一个项目,代码就是这样

    在你的解析函数中

    def parse(self, response):
        if response.status == 200:
            #do what you want
    

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 1970-01-01
      • 2021-10-12
      • 2018-05-15
      • 2011-06-21
      • 2010-10-29
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      相关资源
      最近更新 更多