ModuleNotFoundError: No module named ‘scrapy.utils.reqser‘

在scrapy中使用scrapy-rabbitmq-scheduler会出现报错

ModuleNotFoundError: No module named 'scrapy.utils.reqser'原因是新的版本的scrapy已经摒弃了该方法,但是scrapy-rabbitmq-scheduler 没有及时的更新,所以此时有两种解决方法

方法一.将scrapy回退至旧版本,找到对应的旧版本

方法二.更改scrapy-rabbitmq-scheduler的源码,我已经重新发了新版本的包

pip install scrapy-rabbitmq-task

然后再次尝试运行代码,发现代码已正常

其他配置都不改变

在spider爬虫文件文件添加

    # 请求队列
    queue_name = 'scrape'
    # 结果队列
    items_key = 'scrape.result'
    custom_settings = {
        "COOKIES_ENABLED": "False",
        # 指定重试的http状态码(重新加回队列重试)
        "SCHEDULER_REQUEUE_ON_STATUS" :[500],
        'SCHEDULER': "scrapy_rabbitmq_scheduler.scheduler.SaaS",
        'RABBITMQ_CONNECTION_PARAMETERS': 'amqp://acount:111@2024@127.0.0.1:5672/?heartbeat=0',
        'MEDIA_ALLOW_REDIRECTS': True,
        'RABBITMQ_CONFIRM_DELIVERY': False,
        'ALLOW_REDIRECTS': True,
        'RETRY_ENABLED': True,
        'RETRY_TIMES': 5,
        'DOWNLOAD_TIMEOUT': 50,
        'RETRY_HTTP_CODES': [429, 304, 500, 503],
        # 指定下载器中间件, 确认任务是否成功
        "DOWNLOADER_MIDDLEWARES": {
            'scrapy_rabbitmq_scheduler.middleware.RabbitMQMiddleware': 999
            },
        # 指定item处理方式, item会加入到rabbitmq中
        'ITEM_PIPELINES': {
            'scrapy_rabbitmq_scheduler.pipelines.RabbitMQPipeline': 301,
            },
        'FILTER_EMPTY_ITEM': True,}

问题解决

注:我这里采用版本是Scrapy==2.11.2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值