Python爬蟲第七天:多線程爬蟲|打碼平臺|Scrapy框架

內(nèi)容簡述:

? ? ?一:打碼平臺

? ? 二:多線程爬蟲

? ? 三:Scrapy框架

一:打碼平臺使用

? ? ? ? 云打碼?http://www.yundama.com/? ? ?打碼兔等?

二:多線程爬蟲

三:Scrapy框架

? ??定義:Scrapy是基于Python實(shí)現(xiàn),方便爬取網(wǎng)站數(shù)據(jù)坤次、提取結(jié)構(gòu)性數(shù)據(jù)的應(yīng)用框架。

? ??底層:使用Twisted異步網(wǎng)絡(luò)框架來處理網(wǎng)絡(luò)通訊,加快下載速度劲妙。

????????????不用手動實(shí)現(xiàn)異步框架掖桦,包含了多種中間件接口,非常靈活夺颤。

? ??Scrapy運(yùn)行架構(gòu)流程圖:? ??

?? ??組件說明:

? ? ? ? ? ?Scrapy Engine(引擎): 負(fù)責(zé)Spider痢缎、ItemPipeline、Downloader世澜、Scheduler中間的通訊独旷,信號、數(shù)據(jù)傳遞等寥裂。

? ? ? ? ? ?Scheduler(調(diào)度器): 負(fù)責(zé)接收引擎發(fā)送過來的Request請求嵌洼,并按照一定的方式進(jìn)行整理排列,入隊封恰,當(dāng)引擎需要時麻养,交還給引擎。

????????????Downloader(下載器):負(fù)責(zé)下載引擎發(fā)送的所有Requests請求诺舔,并將其獲取到的Responses交還給引擎鳖昌,由引擎交給Spider來處理。

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

????????????Item Pipeline(管道):負(fù)責(zé)處理Spider中獲取到的Item褥赊,并進(jìn)行后期處理(如詳細(xì)分析糕档、過濾、存儲等).

????????????Downloader Middlewares(下載中間件):類似一個可以自定義擴(kuò)展下載功能的組件拌喉。

Spider Middlewares(Spider中間件):類似一個可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件(比如進(jìn)入Spider的Responses以及從Spider出去的Requests)

?簡單使用:(安裝)pip3 install scrapy

???? (1)創(chuàng)建項(xiàng)目scrapy startproject spider1(項(xiàng)目名稱)

????? (2)目錄結(jié)構(gòu)

??????? spider1

?????????? spider1

????????????? spiders? ? ? ? 爬蟲目錄(寫代碼位置)

???????????????? __init__.py

? ? ? ? ? ? ? ? ?hello.py?????? 爬蟲文件

????????????? __init__.py

????????????? items.py? ? ? ? ? ? ? ?定義數(shù)據(jù)結(jié)構(gòu)地方

????????????? middlewares.py??? 中間件

????????????? pipelines.py? ? ? ? ? 管道文件

????????????? settings.py? ? ? ? ? ? 項(xiàng)目配置文件

?????????? scrapy.cfg

??????? 通過指令創(chuàng)建爬蟲文件

?????????? cd spider1/spider1

?????????? scrapy genspider qiubai"www.qiushibaike.com"

?????????? 此時在spider1/spider1/spiders里面自動創(chuàng)建一個qiubai.py

? ? ? ? ?name:爬蟲的名字速那,啟動的時候根據(jù)爬蟲的名字啟動項(xiàng)目

??????? allowed_domains:允許的域名。意思是爬取的時候這個請求要不要發(fā)送司光,如果是該允許域名下的url琅坡,就會發(fā)送,否則過濾掉這個請求残家∮馨常【列表允許多個域名】

??????? start_urls:爬蟲起始url,是一個列表,里面可以寫多個茴晋,一般只寫一個

??????? def parse(self, response):寫代碼的入口陪捷,parse函數(shù)名是固定。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?當(dāng)收到下載數(shù)據(jù)時系統(tǒng)會自動調(diào)用

? ? ? ? ?參數(shù)response诺擅,是一個響應(yīng)對象市袖,可從中獲取html字符串,然后解析之烁涌。

? ? ? ?【溫馨提示】這個parse函數(shù)必須返回一個可迭代對象

????? (3)定制items.py苍碟,個性化定義數(shù)據(jù)結(jié)構(gòu)格式。

????? (4)運(yùn)行-打印response對象測試下?????

????????????????來到終端下:

?????????? ????????????cd spider1/ spider1/spiders

? ? ? ? ? ? ? ? ? ? ? ?scrapy crawl qiubai

??????? ????????根據(jù)response獲取網(wǎng)頁內(nèi)容

?????????? ????????????????response.text? 字符串類型??response.body二進(jìn)制類型

????? (5)運(yùn)行撮执,直接通過命令導(dǎo)出json格式

?????????? ????????????scrapy crawl qiubai -o qiubai.json

?????????? ????????????scrapy crawl qiubai -o qiubai.xml

?????????? ????????????scrapy crawl qiubai -o qiubai.csv

????? 【注】window 安裝問題參考

? ?????????????pip install Scrapy

? ? ? ? ? ? ? ?building 'twisted.test.raiser' extension

? ? ? ? ? ? ? ?error: Microsoft Visual C++ 14.0 is required.Get it with "Microsoft Visual C++? ????????????????????????BuildTools": http://landinghub.visualstudio.com/visual-cpp-build-tools

? ? ? ? ? ? ? 解決方案::

? ? ? ? ? ? ? ? ? ? 1- 在http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下載twisted

? ? ? ? ? ? ? ? ? ? ? 對應(yīng)版本的whl文件(如我的Twisted-17.5.0-cp36-cp36m-win_amd64.whl)

? ? ? ? ? ? ? ? ? ? ? cp后面是python版本微峰,amd64代表64位,運(yùn)行命令:

? ? ? ? ? ? ? ? ? 2-pip install? ?C:\Users\CR\Downloads\Twisted-17.5.0-cp36-cp36m-win_amd64.whl

? ? ? ? ? ? ? ? ? 3-pip install Scrapy

四:作業(yè)

?? 1-完成課堂代碼?

? ?2-用框架實(shí)現(xiàn)糗事百科糗圖抓取并保存為一個json文件

? ??????????https://www.qiushibaike.com/pic/

? ?3-用框架實(shí)現(xiàn)站長素材高清圖片抓取并保存為一個json文件

? ??????????http://sc.chinaz.com/tupian/shanshuifengjing.html

? ?4-用框架實(shí)現(xiàn)斗圖啦-表情模板-抓取并保存為一個json文件

? ??????????http://www.doutula.com/zz/list/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抒钱,一起剝皮案震驚了整個濱河市蜓肆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谋币,老刑警劉巖仗扬,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蕾额,居然都是意外死亡早芭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門凡简,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逼友,“玉大人,你說我怎么就攤上這事秤涩≈钠颍” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵筐眷,是天一觀的道長黎烈。 經(jīng)常有香客問我,道長匀谣,這世上最難降的妖魔是什么照棋? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮武翎,結(jié)果婚禮上烈炭,老公的妹妹穿的比我還像新娘。我一直安慰自己宝恶,他們只是感情好符隙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布趴捅。 她就那樣靜靜地躺著,像睡著了一般霹疫。 火紅的嫁衣襯著肌膚如雪拱绑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天丽蝎,我揣著相機(jī)與錄音猎拨,去河邊找鬼。 笑死屠阻,一個胖子當(dāng)著我的面吹牛红省,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播栏笆,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼类腮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蛉加?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缸逃,失蹤者是張志新(化名)和其女友劉穎针饥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體需频,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丁眼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昭殉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苞七。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挪丢,靈堂內(nèi)的尸體忽然破棺而出蹂风,到底是詐尸還是另有隱情,我是刑警寧澤乾蓬,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布惠啄,位于F島的核電站,受9級特大地震影響任内,放射性物質(zhì)發(fā)生泄漏撵渡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一死嗦、第九天 我趴在偏房一處隱蔽的房頂上張望趋距。 院中可真熱鬧,春花似錦越除、人聲如沸节腐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铜跑。三九已至门怪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锅纺,已是汗流浹背掷空。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留囤锉,地道東北人坦弟。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像官地,于是被迫代替她去往敵國和親酿傍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容