《Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)案例教程》(林忠會(huì)) 第9章.Python網(wǎng)絡(luò)爬蟲(chóng)_第1頁(yè)
《Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)案例教程》(林忠會(huì)) 第9章.Python網(wǎng)絡(luò)爬蟲(chóng)_第2頁(yè)
《Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)案例教程》(林忠會(huì)) 第9章.Python網(wǎng)絡(luò)爬蟲(chóng)_第3頁(yè)
《Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)案例教程》(林忠會(huì)) 第9章.Python網(wǎng)絡(luò)爬蟲(chóng)_第4頁(yè)
《Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)案例教程》(林忠會(huì)) 第9章.Python網(wǎng)絡(luò)爬蟲(chóng)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng)Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)案例教程PythonWangluoPachongJishuAnliJiaochengCOMMITTEDCOMMITTEDCOMMITTECOMMITTECONTENTS目錄COMMITTED第1章網(wǎng)絡(luò)爬蟲(chóng)入門(mén)

第2章爬蟲(chóng)基礎(chǔ)第3章網(wǎng)頁(yè)解析基礎(chǔ)第4章爬取動(dòng)態(tài)加載數(shù)據(jù)第5章反爬蟲(chóng)策略第6章模擬登錄和處理驗(yàn)證碼

第7章爬取App和PC客戶端第8章爬蟲(chóng)框架Scrapy第9章分布式爬蟲(chóng)第10章項(xiàng)目實(shí)戰(zhàn)COMMITTEDCOMMITTEDCOMMITTECOMMITTECOMMITTED掃碼下載文旌課堂APP掃碼簽到(202X.XX.XXXX:XX至202X.XX.XXXX:XX)簽到方式教師通過(guò)“文旌課堂APP”生成簽到二維碼,并設(shè)置簽到時(shí)間,學(xué)生通過(guò)“文旌課堂APP”掃描“簽到二維碼”進(jìn)行簽到。簽到.Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng)第9章分布式爬蟲(chóng)本章導(dǎo)讀當(dāng)遇到大型的爬蟲(chóng)程序時(shí),由于受CPU、I/O和寬帶等多重限制,單臺(tái)計(jì)算機(jī)難以滿足爬蟲(chóng)需求,此時(shí)可以將爬蟲(chóng)程序部署到多臺(tái)計(jì)算機(jī)上,共同完成一個(gè)任務(wù),以提高爬蟲(chóng)的效率,這就是分布式爬蟲(chóng)。本章從分布式爬蟲(chóng)原理入手,介紹分布式爬蟲(chóng)的實(shí)現(xiàn)和部署方法,包括Scrapy-Redis分布式爬蟲(chóng)和Scrapyd部署分布式爬蟲(chóng)等內(nèi)容。學(xué)習(xí)目標(biāo)理解分布式爬蟲(chóng)原理。掌握實(shí)現(xiàn)Scrapy-Redis分布式爬蟲(chóng)的方法。掌握使用Scrapyd部署分布式爬蟲(chóng)的方法。能使用Scrapy-Redis實(shí)現(xiàn)分布式爬蟲(chóng)。能使用Scrapyd部署分布式爬蟲(chóng)。9.1分布式爬蟲(chóng)原理9.2Scrapy-Redis分布式爬蟲(chóng)9.3使用Scrapyd部署分布式爬蟲(chóng)第9章分布式爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng)SectionTitle9.1分布式爬蟲(chóng)原理分布式爬蟲(chóng)是一個(gè)整體的框架,它通過(guò)多臺(tái)計(jì)算機(jī)同時(shí)運(yùn)行爬蟲(chóng)程序協(xié)同爬取數(shù)據(jù),而協(xié)同爬取數(shù)據(jù)的前提是共享爬取隊(duì)列,其架構(gòu)如圖9-1所示。圖9-1分布式爬蟲(chóng)架構(gòu)9.1分布式爬蟲(chóng)原理9.1分布式爬蟲(chóng)原理從圖9-1可以看出,每個(gè)爬蟲(chóng)程序從爬取隊(duì)列中獲取待爬取的Request,并將未處理的Request存入爬取隊(duì)列中統(tǒng)一去重。爬蟲(chóng)程序有各自的Downloader,分別完成下載任務(wù)。.Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng)SectionTitle9.2Scrapy-Redis分布式爬蟲(chóng)Python分布式爬蟲(chóng)通常使用Scrapy框架加上Redis數(shù)據(jù)庫(kù)實(shí)現(xiàn),通過(guò)scrapy-redis模塊實(shí)現(xiàn)統(tǒng)一任務(wù)調(diào)度,Redis數(shù)據(jù)庫(kù)則存儲(chǔ)共享爬取隊(duì)列。本章以第8章中使用Scrapy框架編寫(xiě)的BaiduSpider項(xiàng)目為例,介紹在兩臺(tái)Windows計(jì)算機(jī)中實(shí)現(xiàn)Scrapy-Redis分布式爬蟲(chóng)的方法。Scrapy-Redis分布式爬蟲(chóng)9.2Scrapy-Redis分布式爬蟲(chóng)9.2.1安裝和配置Redis數(shù)據(jù)庫(kù)Redis是一個(gè)開(kāi)源(BSD許可)的,支持網(wǎng)絡(luò),可基于內(nèi)存亦可持久化的日志型Key-Value數(shù)據(jù)庫(kù)。它支持多種類(lèi)型的數(shù)據(jù)結(jié)構(gòu),如列表(lists)、集合(sets)和有序集合(sortedsets)等,處理速度快。9.2Scrapy-Redis分布式爬蟲(chóng)步驟一:訪問(wèn)/microsoftarchive/redis/releases,在打開(kāi)的頁(yè)面中單擊“Assets”文字,如圖9-2所示。圖9-2下載頁(yè)面1.下載Redis9.2Scrapy-Redis分布式爬蟲(chóng)步驟二:打開(kāi)下載列表,選擇“Redis-x64-3.2.100.msi”選項(xiàng),下載安裝文件,如圖9-3所示。圖9-3下載列表9.2Scrapy-Redis分布式爬蟲(chóng)步驟一:雙擊下載好的Redis-x64-3.2.100.msi文件,在打開(kāi)的對(duì)話框中單擊“Next”按鈕,如圖9-4所示。圖9-4歡迎安裝2.安裝Redis9.2Scrapy-Redis分布式爬蟲(chóng)步驟二:顯示“End-UserLicenseAgreement”界面,勾選“IacceptthetermsintheLicenseAgreement”復(fù)選框,單擊“Next”按鈕,如圖9-5所示。圖9-5同意安裝許可9.2Scrapy-Redis分布式爬蟲(chóng)步驟三:顯示“DestinationFolder”界面,直接使用默認(rèn)路徑,勾選“AddtheRedisinstallationfoldertothePATHenvironmentvariable”復(fù)選框,以添加Redis目錄到環(huán)境變量PATH中,單擊“Next”按鈕,如圖9-6所示。圖9-6添加環(huán)境變量9.2Scrapy-Redis分布式爬蟲(chóng)步驟四:顯示“PortNumberandFirewallException”界面,直接使用默認(rèn)端口號(hào)(6379),勾選“AddanexceptiontotheWindowsFirewall”復(fù)選框,以選擇防火墻例外,從而保證外部設(shè)備可以正常訪問(wèn)Redis服務(wù),單擊“Next”按鈕,如圖9-7所示。圖9-7設(shè)置端口號(hào)和防火墻9.2Scrapy-Redis分布式爬蟲(chóng)步驟五:顯示“MemoryLimit”界面,勾選“SettheMaxMemorylimit”復(fù)選框,在顯示的“MaxMemory”編輯框中輸入“2000”,以設(shè)置Redis最大內(nèi)存為2000MB(可根據(jù)需求設(shè)置,但不可超過(guò)系統(tǒng)內(nèi)存),單擊“Next”按鈕,如圖9-8所示。圖9-8設(shè)置最大內(nèi)存9.2Scrapy-Redis分布式爬蟲(chóng)步驟六:顯示“ReadytoinstallRedisonWindows”界面,單擊“Install”按鈕,如圖9-9所示。圖9-9開(kāi)始安裝步驟七:等待一段時(shí)間后,在顯示的界面中單擊“Finish”按鈕即可完成安裝。9.2Scrapy-Redis分布式爬蟲(chóng)步驟一:打開(kāi)命令提示符窗口,切換至Redis安裝目錄(如C:\ProgramFiles\Redis),輸入“redis-cli”命令,按回車(chē)鍵,如果顯示正確路徑(包括端口號(hào)),則表示已經(jīng)啟動(dòng)服務(wù)并連接了Redis數(shù)據(jù)庫(kù),如圖9-10所示。圖9-10連接Redis數(shù)據(jù)庫(kù)3.驗(yàn)證Redis9.2Scrapy-Redis分布式爬蟲(chóng)如果遠(yuǎn)程連接Redis數(shù)據(jù)庫(kù),則須在命令redis-cli后增加Redis數(shù)據(jù)庫(kù)的連接地址(安裝Redis數(shù)據(jù)庫(kù)的IP地址)和端口號(hào)(6379),即redis-cli-hIP-p6379。9.2Scrapy-Redis分布式爬蟲(chóng)步驟二:輸入“setmykeyhello”命令,按回車(chē)鍵,如果返回顯示“OK”,表示成功保存一個(gè)鍵值;輸入“getmykey”命令,按回車(chē)鍵,可讀取鍵值(此處顯示“hello”),如圖9-11所示。圖9-11讀寫(xiě)Redis9.2Scrapy-Redis分布式爬蟲(chóng)常用的Redis服務(wù)命令如下。卸載服務(wù):redis-server--service-uninstall。開(kāi)啟服務(wù):redis-server--service-start。停止服務(wù):redis-server--service-stop。9.2Scrapy-Redis分布式爬蟲(chóng)9.2.2安裝redis-py庫(kù)Python提供redis-py庫(kù)用于連接Redis數(shù)據(jù)庫(kù)。redis-py庫(kù)不是Python內(nèi)置的標(biāo)準(zhǔn)庫(kù),使用之前需要安裝,安裝方法與requests庫(kù)的安裝類(lèi)似(請(qǐng)參考2.3.2節(jié)),此處不再贅述。9.2Scrapy-Redis分布式爬蟲(chóng)9.2.3安裝scrapy-redis庫(kù)Python提供scrapy-redis庫(kù)用于實(shí)現(xiàn)分布式爬蟲(chóng)。scrapy-redis庫(kù)不是Python內(nèi)置的標(biāo)準(zhǔn)庫(kù),使用之前需要安裝,安裝方法與requests庫(kù)的安裝類(lèi)似(請(qǐng)參考2.3.2節(jié)),此處不再贅述。9.2Scrapy-Redis分布式爬蟲(chóng)9.2.4配置Scrapy-Redis當(dāng)使用scrapy_redis實(shí)現(xiàn)分布式爬蟲(chóng)時(shí),需要將spider腳本中的類(lèi)繼承修改為scrapy_redis.spiders.RedisSpider,同時(shí)設(shè)置初始URL列表在Redis數(shù)據(jù)庫(kù)中的鍵值為“BaiduSpider:start_urls”,故按如下修改news.py文件。1.修改spider腳本fromscrapy_redis.spidersimportRedisSpiderclassNewsSpider(RedisSpider):name='news'allowed_domains=['']redis_key='BaiduSpider:start_urls'……9.2Scrapy-Redis分布式爬蟲(chóng)在Scrapy-Redis框架中,當(dāng)Reids數(shù)據(jù)庫(kù)中存儲(chǔ)的共享爬取隊(duì)列的Request為空時(shí),程序還會(huì)一直運(yùn)行,不會(huì)自動(dòng)停止。這種情況下,可以自定義自動(dòng)停止spider擴(kuò)展,通過(guò)scrapy的spider_idle信號(hào)(spider_idle信號(hào)只有在共享爬取隊(duì)列為空時(shí)才會(huì)被觸發(fā),觸發(fā)間隔為5s)計(jì)算共享爬取隊(duì)列為空的時(shí)間,實(shí)現(xiàn)根據(jù)設(shè)置的空閑時(shí)間來(lái)停止爬蟲(chóng)程序。本案例中,將自動(dòng)停止spider擴(kuò)展封裝成extensions.py文件(詳細(xì)代碼見(jiàn)本書(shū)配套資料第9章中的extensions.py),放入BaiduSpider項(xiàng)目的settings.py文件的同級(jí)目錄中。2.添加自動(dòng)停止spider擴(kuò)展9.2Scrapy-Redis分布式爬蟲(chóng)(1)啟動(dòng)自動(dòng)停止spider擴(kuò)展,并設(shè)置共享爬取隊(duì)列空閑時(shí)間為6個(gè)spider_idle信號(hào)觸發(fā)時(shí)間(30s)。3.修改settings中設(shè)置EXTENSIONS={'BaiduSpider.extensions.SpiderOpenCloseLogging':540,}EXTEN_ITEMCOUNT=69.2Scrapy-Redis分布式爬蟲(chóng)(2)替換Scrapy的Scheduler,使用scrapy_redis模塊中的調(diào)度器統(tǒng)一調(diào)度。SCHEDULER='scrapy_redis.scheduler.Scheduler'(3)使用scrapy_redis去重。DUPEFILTER_CLASS='scrapy_redis.dupefilter.RFPDupeFilter'(4)設(shè)置Redis的連接信息,包括連接地址(安裝Redis數(shù)據(jù)庫(kù)計(jì)算機(jī)的IP地址)和端口(6379)。REDIS_URL='redis://04:6379'9.2Scrapy-Redis分布式爬蟲(chóng)(5)設(shè)置Redis隊(duì)列是否保存。默認(rèn)設(shè)置為False,如果設(shè)置為T(mén)rue,則scrapy_redis不會(huì)清空Redis里的去重隊(duì)列和請(qǐng)求隊(duì)列,它們會(huì)一直保存在Redis數(shù)據(jù)庫(kù)中,用戶可以暫停和啟動(dòng)爬蟲(chóng)程序而不影響繼續(xù)去重。DUPEFILTER_PERSIST=True(6)配置存儲(chǔ)數(shù)據(jù)庫(kù)。搭建一個(gè)MongoDB服務(wù)(確保計(jì)算機(jī)已經(jīng)安裝MongoDB數(shù)據(jù)庫(kù)),將兩臺(tái)計(jì)算機(jī)爬取結(jié)果存儲(chǔ)到同一個(gè)MongoDB數(shù)據(jù)庫(kù)中。MONGO_URI='04'MONGO_DB='baidu'9.2Scrapy-Redis分布式爬蟲(chóng)scrapy-redis分布式爬蟲(chóng)需要遠(yuǎn)程連接Redis數(shù)據(jù)庫(kù),讀取共享爬取隊(duì)列。配置Redis數(shù)據(jù)庫(kù)的過(guò)程為:打開(kāi)Redis安裝目錄(如C:\ProgramFiles\Redis)下的redis.windows-service.conf文件,修改“bind”參數(shù)為“”(見(jiàn)圖9-12),以允許遠(yuǎn)程連接Redis數(shù)據(jù)庫(kù),然后重啟Redis服務(wù)。4.配置Redis數(shù)據(jù)庫(kù)圖9-12配置Redis9.2Scrapy-Redis分布式爬蟲(chóng)步驟一:打開(kāi)MongoDB數(shù)據(jù)庫(kù)安裝目錄(如C:\ProgramFiles\MongoDB\Server\4.2\bin)下的mongod.cfg文件,修改“bindIp”參數(shù)為“”(見(jiàn)圖9-13),以允許遠(yuǎn)程連接MongDB數(shù)據(jù)庫(kù),然后重啟MongoDB服務(wù)。圖9-13配置MongoDB數(shù)據(jù)庫(kù)5.設(shè)置遠(yuǎn)程連接MongoDB數(shù)據(jù)庫(kù)9.2Scrapy-Redis分布式爬蟲(chóng)步驟二:以管理員身份打開(kāi)命令提示符窗口,輸入“netshadvfirewallfirewalladdrulename="MongoDB"dir=inlocalport=27017protocol=tcpaction=allow”命令,按回車(chē)鍵,在Windows的防火墻中添加端口入站規(guī)則,如果返回“確定”,表示添加成功,如圖9-14所示。圖9-14添加端口入站規(guī)則9.2Scrapy-Redis分布式爬蟲(chóng)9.2.5運(yùn)行Scrapy-Redis分布式爬蟲(chóng)將修改好的爬蟲(chóng)項(xiàng)目復(fù)制到兩臺(tái)計(jì)算機(jī)中(確保兩臺(tái)計(jì)算機(jī)都安裝了運(yùn)行環(huán)境,包括redis-py庫(kù)、scrapy-redis庫(kù)和pymongo庫(kù)等),并啟動(dòng)爬蟲(chóng)程序后,在安裝Redis數(shù)據(jù)庫(kù)的計(jì)算機(jī)中手動(dòng)向Redis的初始URL隊(duì)列中添加URL,隊(duì)列的名稱(chēng)為BaiduSpider:start_urls。其過(guò)程為:在命令提示符中切換到Redis目錄,然后輸入命令“redis-clilpushBaiduSpider:start_urls/”,如圖9-15所示。9.2Scrapy-Redis分布式爬蟲(chóng)圖9-15向Redis的BaiduSpider:start_urls隊(duì)列中添加初始URL9.2Scrapy-Redis分布式爬蟲(chóng)啟動(dòng)爬蟲(chóng)程序后,如果沒(méi)有在設(shè)置的空閑時(shí)間內(nèi)向Redis的初始URL隊(duì)列中添加URL,爬蟲(chóng)程序會(huì)停止運(yùn)行。9.2Scrapy-Redis分布式爬蟲(chóng)添加完成后,爬蟲(chóng)程序開(kāi)始運(yùn)行,它們將獲取的數(shù)據(jù)保存到MongoDB數(shù)據(jù)庫(kù)中,直到共享隊(duì)列為空,等待一段時(shí)間(設(shè)置的空閑時(shí)間)后,爬蟲(chóng)程序停止運(yùn)行。保存到MongoDB數(shù)據(jù)庫(kù)中的內(nèi)容如圖9-16所示。圖9-16數(shù)據(jù)庫(kù)中的內(nèi)容9.2Scrapy-Redis分布式爬蟲(chóng)每次啟動(dòng)爬蟲(chóng)程序都需要重新向Redis的初始URL隊(duì)列中添加URL,因?yàn)榕老x(chóng)程序運(yùn)行完成后,初始URL隊(duì)列為空??梢酝ㄟ^(guò)在命令行提示符中輸入“redis-clilrangeBaiduSpider:start_urls0-1”命令查看初始URL隊(duì)列,如圖9-17所示。圖9-17查看初始URL列表9.2Scrapy-Redis分布式爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng).Python網(wǎng)絡(luò)爬蟲(chóng)SectionTitle9.3使用Scrapyd部署分布式爬蟲(chóng)9.3使用Scrapyd部署分布式爬蟲(chóng)按照上述部署分布式爬蟲(chóng)的方法,需要復(fù)制代碼到每臺(tái)計(jì)算機(jī),這樣非常繁雜,也不方便管理。例如,更新爬蟲(chóng)程序版本,可能需要對(duì)所有服務(wù)器的具體代碼進(jìn)行更新;用戶也不方便查看每個(gè)爬蟲(chóng)程序的運(yùn)行情況。此時(shí),可以使用Scrapyd工具部署分布式爬蟲(chóng)以解決此類(lèi)問(wèn)題。Scrapyd是一個(gè)部署和運(yùn)行Scrapy爬蟲(chóng)的工具,它能夠在網(wǎng)頁(yè)端查看正在執(zhí)行的任務(wù),能夠通過(guò)JSONAPI上傳工程和控制工程中的爬蟲(chóng)程序,如新建爬蟲(chóng)任務(wù)、終止爬蟲(chóng)任務(wù)等。本節(jié)以9.2節(jié)Scrapy-Redis分布式爬蟲(chóng)為例,介紹使用Scrapyd部署分布式爬蟲(chóng)程序的方法。9.3使用Scrapyd部署分布式爬蟲(chóng)9.3.1安裝和運(yùn)行ScrapydScrapyd庫(kù)不是Python內(nèi)置的標(biāo)準(zhǔn)庫(kù),使用之前需要安裝,安裝方法與requests庫(kù)的安裝類(lèi)似(請(qǐng)參考2.3.2節(jié)),此處不再贅述。安裝完成后,打開(kāi)scrapyd安裝目錄(如C:\Users\wy\anaconda3\envs\conda_Test\Lib\site-packages\scrapyd)下的default_scrapyd.conf文件,修改“bind_address”參數(shù)為“”(見(jiàn)圖9-18),允許遠(yuǎn)程連接。9.3使用Scrapyd部署分布式爬蟲(chóng)圖9-18配置Scrapyd9.3使用Scrapyd部署分布式爬蟲(chóng)配置完成后,打開(kāi)命令提示符窗口,輸入“scrapyd”命令,運(yùn)行Scrapyd,如圖

9-19所示。圖9-19運(yùn)行Scrapyd9.3使用Scrapyd部署分布式爬蟲(chóng)部署爬蟲(chóng)程序的計(jì)算機(jī)必須安裝和運(yùn)行Scrapyd,否則無(wú)法完成部署。9.3使用Scrapyd部署分布式爬蟲(chóng)9.3.2安裝Scrapyd-Client要將代碼上傳并部署到Scrapyd,還需要使用一個(gè)專(zhuān)門(mén)的打包上傳工具Scrapyd-Client。scrapyd-client庫(kù)不是Python內(nèi)置的標(biāo)準(zhǔn)庫(kù),使用之前需要安裝,安裝方法與requests庫(kù)的安裝類(lèi)似(請(qǐng)參考2.3.2節(jié)),此處不再贅述。9.3使用Scrapyd部署分布式爬蟲(chóng)9.3.3配置Scrapyd-Clientscrapyd-client庫(kù)為用戶提供了scrapyd-deploy命令來(lái)打包和上傳爬蟲(chóng)代碼。在使用scrapyd-deploy命令打包上傳代碼前,需要先配置Scrapy項(xiàng)目中的scrapy.cfg文件,如圖9-20所示。圖9-20配置scrapy.cfg文件9.3使用Scrapyd部署分布式爬蟲(chóng)其中,pc1和pc2表示配置計(jì)算機(jī)的別名;url表示要部署爬蟲(chóng)程序的計(jì)算機(jī)IP地址和端口號(hào);project表示項(xiàng)目名稱(chēng)。如果是在Windows中,運(yùn)行部署命令scrapyd-deploy,可能會(huì)報(bào)錯(cuò),如圖9-21所示。圖9-21錯(cuò)誤提示9.3使用Scrapyd部署分布式爬蟲(chóng)解決這個(gè)問(wèn)題的方法如下。(1)進(jìn)入項(xiàng)目虛擬環(huán)境目錄下的Scripts目錄中,創(chuàng)建scrapy.bat和scrapyd-deploy.bat兩個(gè)新文件。(2)編輯這兩個(gè)文件。在scrapy.bat文件中輸入如下內(nèi)容,保存并退出。@echooffC:\Users\wy\anaconda3\envs\conda_Test\pythonC:\Users\wy\anaconda3\envs\conda_Test\Scripts\scrapy%*9.3使用Scrapyd部署分布式爬蟲(chóng)在scrapyd-deploy.bat文件中輸入如下內(nèi)容,保存并退出。@echooffC:\Users\wy\anaconda3\envs\conda_Test\pythonC:\Users\wy\anaconda3\envs\conda_Test\Scripts\scrapyd-deploy%*9.3使用Scrapyd部署分布式爬蟲(chóng)文件中的路徑要替換成自己的項(xiàng)目環(huán)境路徑。9.3使用Scrapyd部署分布式爬蟲(chóng)另外,運(yùn)行部署命令scrapyd-deploy時(shí),會(huì)出現(xiàn)警告信息,如圖9-22所示。此時(shí),可以在項(xiàng)目虛擬環(huán)境目錄下的Scripts目錄中,打開(kāi)scrapyd-deploy文件,將“fromscrapy.utils.httpimportbasic_auth_header”修改為“fromw3lib.httpimportbasic_auth_header”,如圖9-23所示。圖9-22警告提示9.3使用Scrapyd部署分布式爬蟲(chóng)圖9-23配置scrapyd-deploy文件9.3使用Scrapyd部署分布

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論