Scrapy框架、Scrapy(windows、ubuntu)安裝

  • Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛。

  • 框架的力量,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲,用來抓取網(wǎng)頁內(nèi)容以及各種圖片,非常之方便。

  • Scrapy 使用了 Twisted['tw?st?d] 異步網(wǎng)絡(luò)框架來處理網(wǎng)絡(luò)通訊,可以加快我們的下載速度,不用自己去實(shí)現(xiàn)異步框架,并且包含了各種中間件接口,可以靈活的完成各種需求。

  • 異步:調(diào)用在發(fā)出之后,這個(gè)調(diào)用就直接返回,不管有無結(jié)果 非阻塞:關(guān)注的是程序在等待調(diào)用結(jié)果(消息,返回值)時(shí)的狀態(tài),指在不能立刻得到結(jié)果之前,該調(diào)用不會(huì)阻塞當(dāng)前線程

Scrapy架構(gòu)圖(綠線是數(shù)據(jù)流向):

image

Scrapy Engine(引擎): 負(fù)責(zé)Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號(hào)、數(shù)據(jù)傳遞等。
Scheduler(調(diào)度器): 它負(fù)責(zé)接受引擎發(fā)送過來的Request請(qǐng)求,并按照一定的方式進(jìn)行整理排列,入隊(duì),當(dāng)引擎需要時(shí),交還給引擎。

Downloader(下載器):負(fù)責(zé)下載Scrapy Engine(引擎)發(fā)送的所有Requests請(qǐng)求,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理,

Spider(爬蟲):它負(fù)責(zé)處理所有Responses,從中分析提取數(shù)據(jù),獲取Item字段需要的數(shù)據(jù),并將需要跟進(jìn)的URL提交給引擎,再次進(jìn)入Scheduler(調(diào)度器),

Item Pipeline(管道):它負(fù)責(zé)處理Spider中獲取到的Item,并進(jìn)行進(jìn)行后期處理(詳細(xì)分析、過濾、存儲(chǔ)等)的地方.

Downloader Middlewares(下載中間件):你可以當(dāng)作是一個(gè)可以自定義擴(kuò)展下載功能的組件。

Spider Middlewares(Spider中間件):你可以理解為是一個(gè)可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件(比如進(jìn)入Spider的Responses;和從Spider出去的Requests)

  • 爬蟲流程:
  1. 首先是你寫的爬蟲文件,給出起始url和需要的字段
  2. scrapy會(huì)提取你的url,通過爬蟲中間件(Spider Middlewares)到爬蟲引擎,爬蟲引擎會(huì)把url給調(diào)度器。
  3. 等到適當(dāng)?shù)臅r(shí)候引擎會(huì)從調(diào)度器中拿出url,通過下載中間件到下載器,下載器會(huì)想服務(wù)器發(fā)送Request請(qǐng)求,再通過下載中間件給引擎,引擎再通過爬蟲中間件交給爬蟲文件。
  4. 根據(jù)自定義的item,提取url和數(shù)據(jù)。
  5. 提取數(shù)據(jù)之后,根據(jù)需求,提取到url會(huì)繼續(xù)執(zhí)行以上操作,提取到的數(shù)據(jù)會(huì)交給管道分析、過濾、存儲(chǔ)。

Windows

  1. Python擴(kuò)展包的非官方Windows二進(jìn)制文件(Twisted在網(wǎng)頁最后面)下載和自己python版本對(duì)應(yīng)的twisted
  2. 如我的python是3.6 win32,我就下載了Twisted-17.9.0-cp36-cp36m-win32.whl
    然后執(zhí)行安裝:pip3 install Twisted-17.9.0-cp36-cp36m-win32.whl

ubuntu

  1. sudo pip3 install scrapy
  2. 安裝非Python的依賴

sudo apt-get install python3-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

  • 安裝后,只要在命令終端輸入 scrapy,提示類似以下結(jié)果,代表已經(jīng)安裝成功

    image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛。 框架的力量...
    牛耀閱讀 698評(píng)論 0 1
  • scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 13,085評(píng)論 4 46
  • 不一樣的夏天 ---暑期“三下鄉(xiāng)”心得體會(huì) 今年的夏天酷熱如舊,今年的...
    楊晗芮閱讀 3,072評(píng)論 0 3
  • 文/轉(zhuǎn) 你看過很多不幸福的婚姻。 你聽過情感專家說不結(jié)婚也挺好。 你還沒有遇到合適的人,卻被父母玩命催婚。 于是你...
    時(shí)間蒼白了誓言閱讀 601評(píng)論 0 0
  • 2018.3.9唐春桃 明天就10號(hào)了,轉(zhuǎn)眼這月就過3分子1了,時(shí)間不等啊… 這幾天自己都沒有好好看同修們的日記,...
    tangchuntao唐糖閱讀 120評(píng)論 3 2

友情鏈接更多精彩內(nèi)容