xmxmyoyo 2020-10-09 17:25 采纳率: 11.1%
浏览 44

crawl spider中提示这个错误,看不懂源码,谁能帮解释一下? 到是不影响程序正常运行

[py.warnings] WARNING: D:\PycharmProjects\my_scrapy\venv\lib\site-packages\scrapy\spiders\crawl.py:135: ScrapyDeprecationWarning: Rule.process_request should accept two arguments (request, response), accepting only one is deprecated
self._rules[-1]._compile(self)

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-25 09:04
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这段错误信息是在Scrapy爬虫库的CrawlSpider类中的一个方法中出现的。在你的例子中,你正在尝试使用一个名为process_request的方法,并且它接受两个参数:requestresponse

    然而,在Scrapy 2.0版本中,process_request方法已经被移除,取而代之的是before_requestafter_request方法。这两个方法分别用于处理请求前后的逻辑处理。如果你仍然试图使用process_request,那么这将导致编译时错误,因为Scrapy库已经不再支持这种方法。

    要解决这个问题,请确保你的CrawlSpider实例正确地调用了before_requestafter_request方法:

    def process_request(self, request, spider):
        # 这里执行你的逻辑
        return super().process_request(request, spider)
    
    # 然后在之后的函数中调用这些方法
    self.before_request(request)
    self.after_request(request)
    

    这样,即使你不小心使用了旧的process_request方法,也不会导致编译时错误。

    评论

报告相同问题?

悬赏问题

  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥30 C++行情软件的tick数据如何高效的合成K线