小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

python爬蟲(chóng)Scrapy框架筆記

 天道酬勤YXJ1 2016-10-12

Scrapy是一個(gè)為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫(xiě)的應(yīng)用框架。 可以應(yīng)用在包括數(shù)據(jù)挖掘,信息處理或存儲(chǔ)歷史數(shù)據(jù)等一系列的程序中。

其最初是為了 頁(yè)面抓取 (更確切來(lái)說(shuō),網(wǎng)絡(luò)抓取)所設(shè)計(jì)的, 也可以應(yīng)用在獲取API所返回的數(shù)據(jù)(例如 Amazon Associates Web Services ) 或者通用的網(wǎng)絡(luò)爬蟲(chóng)。

1.安裝scrapy:

安裝scrapy的方式很多,這邊不詳細(xì)列出,大家可以網(wǎng)上百度。我的電腦裝的是anaconda(Python的一個(gè)集成安裝,安裝它后就默認(rèn)安裝了python、IPython、集成開(kāi)發(fā)環(huán)境、Spyder和眾多的包和模塊。非常方便。我這邊用的是python2.7版本),采用最簡(jiǎn)單的方式安裝scrapy:

pip install scrapy

備注:這個(gè)語(yǔ)句會(huì)自動(dòng)下載需要的模塊,其中有一個(gè)叫twisted,我在家里的電腦和公司電腦,運(yùn)行上面的命令后,到下載twisted的時(shí)候都是下載了一半就報(bào)錯(cuò),這時(shí)輸入pip install twisted重新安裝這個(gè)模塊,再重新運(yùn)行 pip install scrapy即可成功安裝。安裝完后即可開(kāi)始編寫(xiě)scrapy

2.新建一個(gè)項(xiàng)目:

進(jìn)入windows的cmd,cd到你想要?jiǎng)?chuàng)建項(xiàng)目的路徑,然后鍵入:

scrapy startproject tutorial

該命令會(huì)創(chuàng)建一個(gè)較tutorial的項(xiàng)目,該項(xiàng)目的目錄如下:

tutorial/

scrapy.cfg

tutorial/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

...

這些文件分別是:

l scrapy.cfg: 項(xiàng)目的配置文件

l tutorial/: 該項(xiàng)目的python模塊。之后您將在此加入代碼。

l tutorial/items.py: 項(xiàng)目中的item文件.

l tutorial/pipelines.py: 項(xiàng)目中的pipelines文件

l tutorial/settings.py: 項(xiàng)目的設(shè)置文件.

l tutorial/spiders/: 放置spider代碼的目錄.

3.Scrapy架構(gòu)

整體架構(gòu)

python爬蟲(chóng)Scrapy框架筆記

python爬蟲(chóng)Scrapy框架筆記

爬取流程

上圖綠線是數(shù)據(jù)流向,首先從初始URL開(kāi)始,Scheduler會(huì)將其交給Downloader進(jìn)行下載,下載之后會(huì)交給Spider進(jìn)行分析,Spider分析出來(lái)的結(jié)果有兩種:一種是需要進(jìn)一步抓取的鏈接,例如之前分析的“下一頁(yè)”的鏈接,這些東西會(huì)被傳回Scheduler;另一種是需要保存的數(shù)據(jù),它們則被送到Item Pipeline那里,那是對(duì)數(shù)據(jù)進(jìn)行后期處理(詳細(xì)分析、過(guò)濾、存儲(chǔ)等)的地方。另外,在數(shù)據(jù)流動(dòng)的通道里還可以安裝各種中間件,進(jìn)行必要的處理

數(shù)據(jù)流

python爬蟲(chóng)Scrapy框架筆記4.創(chuàng)建spider

python爬蟲(chóng)Scrapy框架筆記

這樣我們會(huì)在spiders文件夾里得到spider1的py文件,用python編輯器打開(kāi)它如下:

python爬蟲(chóng)Scrapy框架筆記

我們?cè)囍帉?xiě)它,假設(shè)我要爬起中國(guó)日?qǐng)?bào)的一條消息:

python爬蟲(chóng)Scrapy框架筆記

我們的spider.py可以改成這樣:

python爬蟲(chóng)Scrapy框架筆記

然后運(yùn)行爬蟲(chóng)

scrapy crawl spider1

在這個(gè)過(guò)程中:

Scrapy為Spider的 start_urls 屬性中的每個(gè)URL創(chuàng)建了 scrapy.Request 對(duì)象,并將 parse 方法作為回調(diào)函數(shù)(callback)賦值給了Request。

Request對(duì)象經(jīng)過(guò)調(diào)度,執(zhí)行生成 scrapy.http.Response 對(duì)象并送回給spider parse() 方法。

python爬蟲(chóng)Scrapy框架筆記

運(yùn)行完后我們可以看到

python爬蟲(chóng)Scrapy框架筆記

打開(kāi)查看

python爬蟲(chóng)Scrapy框架筆記

是不是很亂?我們打開(kāi)瀏覽器查看碼源看到:

python爬蟲(chóng)Scrapy框架筆記

其實(shí)保存在txt里的正是這個(gè)碼源。我們大多數(shù)的工作正是從這個(gè)碼源里提取我們需要的信息,這邊只是為了掩飾方便我們把它寫(xiě)到txt,Scrapy提取數(shù)據(jù)有自己的一套機(jī)制。它們被稱作選擇器(seletors),因?yàn)樗麄兺ㄟ^(guò)特定的 XPath 或者 CSS 表達(dá)式來(lái)“選擇” HTML文件中的某個(gè)部分,當(dāng)然我們也可以用正則表達(dá)式或Beautiful Soup來(lái)提取。具體可以查看scrapy文檔(鏈接在文末)。scrapy還提供了Item類(lèi),來(lái)保存爬取到的數(shù)據(jù)(可以理解為鍵提前定義好的字典),數(shù)據(jù)解析這邊就不一一列出,具體可以查看scrapy文檔或其他的解析方式。

5.我遇到的問(wèn)題。

爬取中財(cái)網(wǎng)數(shù)據(jù)的時(shí)候,

python爬蟲(chóng)Scrapy框架筆記

打開(kāi)碼源看到

python爬蟲(chóng)Scrapy框架筆記

百度了,如下

python爬蟲(chóng)Scrapy框架筆記

學(xué)習(xí)交流群是個(gè)好東西,群里發(fā)問(wèn)了,一會(huì)就有群友彈窗給我

python爬蟲(chóng)Scrapy框架筆記

360瀏覽器里沒(méi)看,于是我用谷歌瀏覽器打開(kāi)網(wǎng)頁(yè),然后用開(kāi)發(fā)者工具打開(kāi)碼源

python爬蟲(chóng)Scrapy框架筆記

按照上面介紹的方法改spider1代碼,運(yùn)行爬蟲(chóng),得到如下結(jié)果,接下來(lái)進(jìn)一步解析這個(gè)文本即可

python爬蟲(chóng)Scrapy框架筆記

參考鏈接:

http://scrapy-chs./zh_CN/0.24/intro/overview.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多