Scrapy爬取豆瓣讀書全站 分析網(wǎng)頁
首先打開豆瓣讀書中的分類瀏覽,可以看到其中有很多的分類
豆瓣應(yīng)該是一個比較好爬的網(wǎng)站,所有的數(shù)據(jù)都不是ajax加載的,我們打開谷歌的F12或者是火狐的FireBug可以很輕松的找到每一個分類的鏈接
這里我們使用scrapy中的一個linkextractors庫,這個庫的作用是會根據(jù)提供的限制,自動爬取和深入每一個頁面并且提取需要的鏈接,如果想要找到每一個分類的url,只需Rule(LinkExtractor(allow="/tag/",restrict_xpaths="http://div[@class="article"]"),follow=True),這里的allow是一個正則表達(dá)式,用來篩選分類url,restrict_xpaths是限制在哪個結(jié)構(gòu)中篩選url,這里限制的是在
這個盒模型中,follow表示是否深入,這里當(dāng)然是要深入,這里就能得到每一個分類url了,自己可以在回調(diào)函數(shù)中測試下,輸入所得的url,可以使用respose.url得到所有的分類url,就可以繼續(xù)深入到每一步作品所在的頁面了,如下圖!
但是我們需要不止是這一頁,我們要爬的時全站,因此這里必須實(shí)現(xiàn)翻頁,我們可以看到頁面底部清楚的寫著下一頁,我們通過解析頁面同樣可以得到url,如下圖所示
可以看到所有的url的規(guī)則,我們就可以用正則表達(dá)式限制,以獲取我們的需要,我們可以寫出翻頁的代碼Rule(LinkExtractor(allow="?start=d+&type=",restrict_xpaths="http://div[@class="pa>ginator"]"),follow=True),最后一步就是打開每一部書的網(wǎng)頁得到所需的信息了,我們就可以通過這里通過解析網(wǎng)頁還是可以很清楚的知道url,這里就不再詳細(xì)的說怎么解析了,這里可以看到所有的url都在li標(biāo)簽中,如下圖
我們打開li標(biāo)簽可以很清楚的看大url的規(guī)律,因此這里還是用到上面說的庫解析深入,連同上面的代碼如下Rule(LinkExtractor(allow="/tag/",restrict_xpaths="/ /div[@class="article"]"),follow=True),#第一步 Rule(LinkExtractor(allow="?start=d+&type=",restrict_xpaths="http://div[@class="pa>ginator"]"),follow=True), #第二步翻翻頁 Rule(LinkExtractor(allow="/subject/d+/$",restrict_>xpaths="http://ul[@class="subject-list"]"),callback="parse_item")#得到所需網(wǎng)頁的url參考文檔:到了這里總算是大功告成了,下面就需要解析自己的所需要的信息了,這里附上網(wǎng)頁
下面就是寫自己解析代碼了,這里就不需要詳細(xì)的說了,詳細(xì)內(nèi)容請看源碼,值得注意的是爬取的網(wǎng)頁速度不要太快,豆瓣會禁IP的,這里可以采用一些反爬蟲措施,如請求頭的更換,ip地址的更換,下一篇會詳細(xì)解說。本人博客地址scrapy中文文檔
最后附上本人的github地址,不要忘了給個star哦
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38558.html
摘要:今天為大家整理了個爬蟲項(xiàng)目。地址新浪微博爬蟲主要爬取新浪微博用戶的個人信息微博信息粉絲和關(guān)注。代碼獲取新浪微博進(jìn)行登錄,可通過多賬號登錄來防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...
摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...
摘要:因?yàn)闀簳r還沒有學(xué)到如何模擬登陸,所以我就先抓像豆瓣這樣不需要登陸的網(wǎng)站上的內(nèi)容。其中會回調(diào)函數(shù),用是因?yàn)槎拱陥D書并不是格式一致的。只需要在中設(shè)置項(xiàng)目代碼地址豆瓣圖書爬蟲 前言 Scrapy學(xué)習(xí)(一) 安裝 Scrapy學(xué)習(xí)(二) 入門 有了前兩篇的基礎(chǔ),就可以開始互聯(lián)網(wǎng)上爬取我們感興趣的信息了。因?yàn)闀簳r還沒有學(xué)到如何模擬登陸,所以我就先抓像豆瓣這樣不需要登陸的網(wǎng)站上的內(nèi)容。我的開發(fā)...
摘要:注意爬豆爬一定要加入選項(xiàng),因?yàn)橹灰馕龅骄W(wǎng)站的有,就會自動進(jìn)行過濾處理,把處理結(jié)果分配到相應(yīng)的類別,但偏偏豆瓣里面的為空不需要分配,所以一定要關(guān)掉這個選項(xiàng)。 本課只針對python3環(huán)境下的Scrapy版本(即scrapy1.3+) 選取什么網(wǎng)站來爬取呢? 對于歪果人,上手練scrapy爬蟲的網(wǎng)站一般是官方練手網(wǎng)站 http://quotes.toscrape.com 我們中國人,當(dāng)然...
摘要:這次我們爬取的內(nèi)容準(zhǔn)備步驟找到格式網(wǎng)頁中需要爬取的數(shù)據(jù)的例如我們需要爬取圖片的這里用的是不會用的同學(xué)請百度然后我們開始建立工程打開然后在你想要建立工程的目錄下面輸入就會自動建立一個工程然后去根目錄建立一個去這個目錄里建立一個注意這里的主爬蟲 這次我們爬取的內(nèi)容 showImg(https://segmentfault.com/img/bVSirX?w=1021&h=521); 準(zhǔn)備步驟...
閱讀 1270·2021-10-18 13:32
閱讀 2344·2021-09-24 09:47
閱讀 1331·2021-09-23 11:22
閱讀 2469·2019-08-30 14:06
閱讀 576·2019-08-30 12:48
閱讀 2004·2019-08-30 11:03
閱讀 541·2019-08-29 17:09
閱讀 2469·2019-08-29 14:10