python scrapy腳本報(bào)錯(cuò)問(wèn)題及解決
python scrapy腳本報(bào)錯(cuò)
原本一個(gè)好好的爬蟲(chóng)腳本,最近運(yùn)行時(shí)突然報(bào)錯(cuò):
報(bào)錯(cuò)代碼
如下:
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.>]
分析報(bào)錯(cuò)
發(fā)送的請(qǐng)求未被接受,鏈接已斷開(kāi)
百度最終定位到是請(qǐng)求頭的原因:
原本的請(qǐng)求頭的HOST被換了,腳本發(fā)起請(qǐng)求時(shí)就被拒了,因此把請(qǐng)求頭修改就好了
解決scrapy需要批量啟動(dòng)多個(gè)腳本問(wèn)題,scrapy批量運(yùn)行腳本
問(wèn)題描述
今天遇到在遠(yuǎn)程服務(wù)器上,os 批量啟動(dòng)時(shí)存在啟動(dòng)不了的情況
問(wèn)題解決
批量啟動(dòng)有好多種方式,但是我個(gè)人主要用的有兩個(gè),
當(dāng)?shù)谝粋€(gè)無(wú)法啟動(dòng)時(shí),測(cè)試第二種啟動(dòng)方式 ,可以正常啟動(dòng);
""" 批量啟動(dòng) """ # ------------------- 第一種 ---------------------------------------- import os os.system("scrapy crawl Nj") os.system("scrapy crawl Yanc") os.system("scrapy crawl Hzs")
簡(jiǎn)單做個(gè)記錄吧。
第二種,是調(diào)用scrapy 系統(tǒng)自帶的方式
為了讓同一個(gè) Scrapy 項(xiàng)目下面的多個(gè)爬蟲(chóng)實(shí)現(xiàn)真正的同時(shí)運(yùn)行,我們可以使用 Scrapy 的CrawlerProcess。
它的用法如下:
from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings settings = get_project_settings() crawler = CrawlerProcess(settings) crawler.crawl('爬蟲(chóng)名1') crawler.crawl('爬蟲(chóng)名2') crawler.crawl('爬蟲(chóng)名3') crawler.start()
使用這種方法,可以在同一個(gè)進(jìn)程里面跑多個(gè)爬蟲(chóng)。
# -------------------- 第二種 ------------------------------------ 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()
兩種方式都可以實(shí)現(xiàn),scrapy 多個(gè)項(xiàng)目的批量啟動(dòng)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 實(shí)現(xiàn)刪除某路徑下文件及文件夾的實(shí)例講解
下面小編就為大家分享一篇Python 實(shí)現(xiàn)刪除某路徑下文件及文件夾的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python實(shí)現(xiàn)判斷一行代碼是否為注釋的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)判斷一行代碼是否為注釋的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python?opencv實(shí)現(xiàn)影像拼接
這篇文章主要介紹了python?opencv實(shí)現(xiàn)影像拼接,主要包括內(nèi)容又垂直影像拼接vconcat和水平影像拼接hconcat以及縱向拼接多個(gè)不同圖片,下面詳細(xì)的相關(guān)內(nèi)容,需要的朋友可以參考一下2022-03-03布隆過(guò)濾器的概述及Python實(shí)現(xiàn)方法
布隆過(guò)濾器是一種概率空間高效的數(shù)據(jù)結(jié)構(gòu)。它與hashmap非常相似,用于檢索一個(gè)元素是否在一個(gè)集合中。這篇文章主要介紹了布隆過(guò)濾器的概述及Python實(shí)現(xiàn),需要的朋友可以參考下2019-12-12Python pandas軸旋轉(zhuǎn)stack和unstack的使用說(shuō)明
這篇文章主要介紹了Python pandas軸旋轉(zhuǎn)stack和unstack的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03