python scrapy脚本报错问题及解决

 更新时间:2024年02月08日 17:07:58   作者:郑德帅  
这篇文章主要介绍了python scrapy脚本报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python scrapy脚本报错

原本一个好好的爬虫脚本,最近运行时突然报错:

报错代码

如下:

  File "e:\python3.7.1\lib\site-packages\scrapy\core\downloader\middleware.py", line 43, in process_request
    defer.returnValue((yield download_func(request=request,spider=spider)))
twisted.web._newclient.ResponseNeverReceived: [<twisted.python.failure.Failure twisted.internet.error.ConnectionDone: Connection was closed cleanly.>]

分析报错

发送的请求未被接受,链接已断开

百度最终定位到是请求头的原因:

原本的请求头的HOST被换了,脚本发起请求时就被拒了,因此把请求头修改就好了

解决scrapy需要批量启动多个脚本问题,scrapy批量运行脚本

问题描述

今天遇到在远程服务器上,os 批量启动时存在启动不了的情况

问题解决

批量启动有好多种方式,但是我个人主要用的有两个,

当第一个无法启动时,测试第二种启动方式 ,可以正常启动;

"""
批量启动
"""
# ------------------- 第一种  ----------------------------------------
import os


os.system("scrapy crawl Nj")
os.system("scrapy crawl Yanc")
os.system("scrapy crawl Hzs")

简单做个记录吧。

第二种,是调用scrapy 系统自带的方式

为了让同一个 Scrapy 项目下面的多个爬虫实现真正的同时运行,我们可以使用 Scrapy 的CrawlerProcess。

它的用法如下:

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

settings = get_project_settings()

crawler = CrawlerProcess(settings)
crawler.crawl('爬虫名1')
crawler.crawl('爬虫名2')
crawler.crawl('爬虫名3')
crawler.start()

使用这种方法,可以在同一个进程里面跑多个爬虫。

# --------------------  第二种  ------------------------------------

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

settings = get_project_settings()

crawler = CrawlerProcess(settings)
crawler.crawl('Nj')
crawler.crawl('Yanc')
crawler.crawl('Hzs')
crawler.start()

两种方式都可以实现,scrapy 多个项目的批量启动

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python列表生成式与生成器操作示例

    Python列表生成式与生成器操作示例

    这篇文章主要介绍了Python列表生成式与生成器操作,结合实例形式分析了Python列表生成式与生成器的功能、使用方法及相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • Python 实现删除某路径下文件及文件夹的实例讲解

    Python 实现删除某路径下文件及文件夹的实例讲解

    下面小编就为大家分享一篇Python 实现删除某路径下文件及文件夹的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python实现判断一行代码是否为注释的方法

    Python实现判断一行代码是否为注释的方法

    今天小编就为大家分享一篇Python实现判断一行代码是否为注释的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • keras中的History对象用法

    keras中的History对象用法

    这篇文章主要介绍了keras中的History对象用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python opencv实现影像拼接

    python opencv实现影像拼接

    这篇文章主要介绍了python opencv实现影像拼接,主要包括内容又垂直影像拼接vconcat和水平影像拼接hconcat以及纵向拼接多个不同图片,下面详细的相关内容,需要的朋友可以参考一下
    2022-03-03
  • Python reversed函数及使用方法解析

    Python reversed函数及使用方法解析

    这篇文章主要介绍了Python reversed函数及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Win下PyInstaller 安装和使用教程

    Win下PyInstaller 安装和使用教程

    pyinstaller是一个非常简单的打包python的py文件的库,这篇文章主要介绍了PyInstaller-Win安装和使用教程,本文通过流程实例相结合给大家介绍的非常详细,需要的朋友可以参考下
    2019-12-12
  • 布隆过滤器的概述及Python实现方法

    布隆过滤器的概述及Python实现方法

    布隆过滤器是一种概率空间高效的数据结构。它与hashmap非常相似,用于检索一个元素是否在一个集合中。这篇文章主要介绍了布隆过滤器的概述及Python实现,需要的朋友可以参考下
    2019-12-12
  • Python给定一个句子倒序输出单词以及字母的方法

    Python给定一个句子倒序输出单词以及字母的方法

    今天小编就为大家分享一篇Python给定一个句子倒序输出单词以及字母的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python pandas轴旋转stack和unstack的使用说明

    Python pandas轴旋转stack和unstack的使用说明

    这篇文章主要介绍了Python pandas轴旋转stack和unstack的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论