Scrapy框架的使用
Python爬蟲入門之 scrapy框架的使用
scrapy是適用于Python的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試。 [1]
支持自定義,方便,好用。異步的,,速度嗖嗖嗖的!!!
異步處理框架,可配置和可擴展程度非常高,Python中使用最廣泛的爬蟲框架
Scrapy中文文檔
常用命令:
0. 準備工作
查看scrapy命令
scrapy -h
安裝
pip install scrapy
1. 創(chuàng)建一個scrapy項目
創(chuàng)建scrapy項目
scrapy startproject scrapydemo
切換到scrapydemo項目
cd scrapydemo
創(chuàng)建一個新的spider
scrapy genspider scrapydemo bilibili.com
流程圖:
畫圖
Spider的將需要發(fā)送請求的request發(fā)送給Engine(引擎
Engine將request發(fā)送給Scheduler(調(diào)度器
Scheduler(調(diào)度器,可理解為url隊列),生成request請求交給Engine
Engine拿到request,通過DownloaderMiddleware(可選,主要有UA, Cookie,代理IP)進行層層過濾發(fā)送給Downloader
Downloader向互聯(lián)網(wǎng)發(fā)送請求,獲取到response后,又經(jīng)過SpiderMiddleware(爬蟲中間件)發(fā)送給Engine
Engine獲取到response數(shù)據(jù)之后,返回給Spider,
Spider的parse()方法對獲取到的response數(shù)據(jù)進行處理,解析出item和request,然后發(fā)送給Engine
Engine獲取到item和request,將item發(fā)送給ItemPipeline(管道)進行數(shù)據(jù)持久化,將request發(fā)送給Scheduler(調(diào)度
以上步驟會一直循環(huán),循環(huán)到無request(url)請求,程序才停止。
注意!即使某個request中報錯了,程序也會繼續(xù)執(zhí)行到?jīng)]有request請求才停止。
部分文件說明:
2. 案例實戰(zhàn)
鏈家
查看君子協(xié)議:https://www.bilibili.com/robots.txt
3. 數(shù)據(jù)持久化
存儲為csv:
cmdline.execute('scrapy crawl spider -o lianjia.csv'.split())
1
存儲為json:
cmdline.execute('scrapy crawl spider -o lianjia.json'.split())
1
存儲到數(shù)據(jù)庫:
pipeline.py
Python Scrapy
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。