scrapy爬取出现的问题

最近在看慕课网之前scrapy爬取博客网的教程。
但是遇到一个问题,就是在yield request这里总是报错。不知道为什么,

img

img

img


如图,断点显示的应该是yield这里出错了,前面的都能正常运行。希望有人能帮我解答一下

这个错误通常表示您在使用 yield_requests 时遇到了问题。以下是一些可能的解决方案:

确保您已经更新了 NuGet 包索引,并且已经正确地安装了 OpenCV 包。
确保您的代码中没有错误,例如在 yield_requests 中使用了未定义的 yield_reason、yield_depth 或 yield_timeout 等参数。
尝试使用其他版本的 OpenCV 包,例如 OpenCV.2.4.9。
尝试手动下载并安装包的更新文件。有时,这可以解决一些更新错误。
如果以上所有方法都无效,您可能需要考虑使用其他 NuGet 包管理器,例如 Visual Studio 的 NuGet Package Manager(NPM)或者 conda 包管理器。

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/1096070
  • 这篇博客也不错, 你可以看下scrapy中 yield使用详解
  • 除此之外, 这篇博客: 一文解决scrapy带案例爬取当当图书中的 1.yield类似于return,但它是生成器的一部分 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 生成器详解
    首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了。看做return之后再把它看做一个是生成器(generator)的一部分(带yield的函数才是真正的迭代器)

  • 以下回答由chatgpt基于相关博客总结生成:

    由于没有提供具体错误信息和代码,我无法确定yield request出错的原因。一般来说,yield request会在scrapy中用于提交请求,所以可能出错的原因包括但不限于:

    1. 请求参数有误:检查请求参数是否填写正确,例如请求链接、请求方法、请求头、请求体等。

    2. 爬虫被禁止:如果请求的链接被网站禁止爬取,可能会导致yield request出错。可以尝试携带cookies或者模拟请求头等手段进行爬取。

    3. 异步框架与yield冲突:如果在使用异步框架(如aiohttp)进行请求时,与scrapy中的yield request冲突,可能会出现错误。需要调整代码逻辑或者换用其他的异步框架。

    4. 其他未知原因:出错原因也可能是其他未知的问题,可以结合具体错误信息进行排查,或者将代码提交到官方论坛等社区进行求助。

    根据具体情况进行排查,可以逐步确定yield request出错的原因,并进行相应的解决方案。