近期項目需要,要對一個動態(tài)加載的網(wǎng)站進行爬蟲吮炕。而且由于對于性能要求較高参淹,且需要數(shù)據(jù)持久化醉锄,因此采用現(xiàn)有較或的爬蟲框架Scrapy。
Scrapy最早是在Python2下完成浙值。由于現(xiàn)在Python3的發(fā)展恳不,Scrapy對于Python3已經(jīng)有了非常好的支持。目前2.7和3.4或以上的python版本都可以支持Scrapy开呐。本次先安裝Scrapy
一.安裝Virtualenv(非必須烟勋,但建議):
scarpy官網(wǎng)提供了各種版本的安裝方法,在此講述mac版本的:
由于傳統(tǒng)pip安裝下负蚊,安裝的python模塊都會放在一個系統(tǒng)Library之中神妹,這樣如果同一模塊在不同項目中需求的版本不同的話,就會產(chǎn)生沖突家妆。因此virtualenv應(yīng)用而生鸵荠。他是一個python的虛擬環(huán)境。激活他之后伤极,系統(tǒng)默認python模塊的地址會發(fā)生相應(yīng)變化蛹找,因此在給環(huán)境下安裝的模塊姨伤,不會影響到該環(huán)境之外,也就是產(chǎn)生了一個隔離沙箱庸疾。
MacOs下可以使用homebrew安裝virtualenv:
$:brew install virtualenv
安裝完成之后運行 $: virtualenv --version查看是否安裝成功
安裝成功之后可以開始創(chuàng)建一個環(huán)境乍楚,例如叫ScrapyEnv(專門用來Scrapy爬蟲的環(huán)境)
$:virtualenv ScrapyEnv
然后激活沙箱:
$:source ScrapyEnv/bin/activate
可以看到在命令行前面會呈現(xiàn)如下:
這樣證明已經(jīng)激活了該環(huán)境,之后使用
$:deactivate
命令來退出此環(huán)境
二.安裝Scrapy所需要依賴
需要先安裝Scrapy所需依賴届慈。對于Python3+來說徒溪,除了twisted模塊之外,其他四項在運行pip install Scrapy時候都會自動安裝金顿。因此我們需要先安裝twisted模塊臊泌,否則會導(dǎo)致Scrapy安裝失敗。我們使用官網(wǎng)下載揍拆,自行安裝twisted渠概。
twisted下載地址:https://pypi.org/project/Twisted/#files
Window版本,可以現(xiàn)在twisted官網(wǎng)下載響應(yīng)的whl文件嫂拴,然后在pip安裝wheel模塊之后播揪,運行
$:pip install ./(the source of the whl file you just download)
即可安裝。
MacOs版本筒狠,需要下載源碼版本猪狈,然后cd進入該文件夾(別忘了,在激活virtualenv之后在進入)窟蓝,運行python setup.py install罪裹。如果其中報錯,就按照提示安裝相應(yīng)的模塊即可运挫。
三.安裝Scrapy
由于Scrapy需要使用C lang 的編譯器和development headers(官網(wǎng)用詞,不知含義)套耕,在mac系統(tǒng)下谁帕,以上是有xcode提供,因此先安裝xcode命令行工具:
$:xcode-select --install
以來安裝完成之后冯袍,即可運行pip install scrapy匈挖,運行完成之后,運行
$:Scrapy startproject yourProject 進行創(chuàng)建康愤±苎可以看到,在該目錄下產(chǎn)生了一個文件夾征冷。
四.Scrapy項目結(jié)構(gòu)
crawlServer為我創(chuàng)建的project择膝。
其中:
1、spiders文件夾:爬蟲文件主目錄
2检激、init.py:將改文件夾變?yōu)橐粋€python模塊
3肴捉、items.py:定義所需要爬蟲的項目
4腹侣、middlewares.py:爬蟲中間件
5、pipelines.py:管道文件
6齿穗、settings.py:設(shè)置文件