爬蟲Scrapy框架之學習使用(一)


介紹:

Scrapy一個開源和協作的框架,其最初是為了頁面抓取所設計的,使用它可以以快速、簡單、可擴展的方式從網站中提取所需的數據。但目前Scrapy的用途十分廣泛,可用於如數據挖掘、監測和自動化測試等領域,也可以應用在獲取API所返回的數據或者通用的網絡爬蟲。
Scrapy是對twisted框架進一步封裝得來的,所以它才也采用了事件驅動機制,並使用異步非阻塞的方式實現了並發。
我們看下Scrapy是如何工作的:
scrapy_workflow
整個框架由7部分組成:

SPIDERS:負責封裝request對象和解析數據;
ENGINE:活動中樞,負責將不同的數據轉發給各自的部分處理;
SCHEDULER:調度員,對各種請求進行調度;
DOWNLOADER:負責從網絡上下載數據;
ITEM PIPELINES:對ITEMS進行處理,並對數據進行持久化存儲,如果數據不符合要求,那么會重新發送請求;
MIDDLEWARE:對請求響應的中間控制;

安裝:

pip3 install scrapy

命令行工具:

全局命令:

startproject #創建項目
genspider #創建爬蟲程序
runspider #可以獨立運行.py文件
fetch #獨立於工程單純的爬取頁面,可以拿到請求頭
view #下載完畢會彈出瀏覽器,查看哪些是ajax請求

項目級別命令:

crawl #運行爬蟲注意配置中ROBOTSTXT_OBEY = False,你懂的0.0!
check #檢查語法錯誤
list #羅列下到底養了多少條蟲子
bench #壓力測試(打樁?)

項目結構及各部簡介:

project_name/
scrapy.cfg
project_name/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
蟲子1.py
蟲子2.py
蟲子3.py

scrapy.cfg : 用於部署scrapy
items.py : 結構化數據
pipelines : 持久化數據
settings.py : 爬蟲相關的配置信息,注意選項要全部大寫,否則無效
spiders : 爬蟲目錄,爬蟲規則寫在內部

#"如果要想在PyCharm中運行爬蟲" :
from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'baidu'])

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com