gpt4 book ai didi

python - 在 scrapy 的 start_requests() 中返回项目

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:59 24 4
gpt4 key购买 nike

我正在编写一个 scrapy 蜘蛛,它将许多 url 作为输入并将它们分类(作为项目返回)。这些 URL 通过我的爬虫的 start_requests() 方法提供给蜘蛛。

有些网址不用下载就可以分类,所以我想在start_requests()中直接yield给它们一个Item,这样被 scrapy 禁止。我怎样才能避免这种情况?

我考虑过在自定义中间件中捕获这些请求,将它们变成虚假的 Response 对象,然后我可以在请求回调中将其转换为 Item 对象,但欢迎任何更清洁的解决方案。

最佳答案

我认为使用蜘蛛中间件并覆盖 start_requests() 将是一个好的开始。

在你的中间件中,你应该遍历 start_urls 中的所有 url,并且可以使用条件语句来处理不同类型的 url。

  • 对于不需要请求的特殊 URL,您可以
    • 直接调用您的管道的 process_item(),不要忘记导入您的管道并为此从您的 url 创建一个 scrapy.item
    • 正如您提到的,在请求中将 url 作为元数据传递,并有一个单独的解析函数,该函数只会返回 url
  • 对于所有剩余的 URL,您可以启动一个您可能已经定义的“正常”请求

关于python - 在 scrapy 的 start_requests() 中返回项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35300052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com