python自我學(xué)習(xí) 二 爬一個(gè)圖片網(wǎng)站上

前面的章節(jié)

Python安裝

python自我學(xué)習(xí) 一 python語(yǔ)法,及變量類型

本節(jié)章節(jié) 爬一個(gè)圖片網(wǎng)站上

爬蟲是啥

網(wǎng)絡(luò)爬蟲是什么?

看意思是一個(gè)蟲子,一個(gè)什么蟲子?實(shí)際上指的是蜘蛛spider。

蜘蛛結(jié)成網(wǎng),在網(wǎng)上爬來爬去的尋找墜入網(wǎng)絡(luò)中的食物。

網(wǎng)絡(luò)爬蟲就是差不多的意思,在互聯(lián)網(wǎng)上爬來爬去的尋找你的精神食物。

開始爬前的準(zhǔn)備

要開始爬,你得先知道爬哪里吧,你得先獲得網(wǎng)頁(yè)的源碼即HTML信息吧,獲得后,你需要分析出鏈接和圖片等資源吧。

要獲取HTML并分析網(wǎng)頁(yè)信息,需要下載一個(gè)第三方的庫(kù)requesets,下載地址:

下載并解壓

最重要的是 這個(gè)庫(kù)有完善的中文資料 ,討厭蝌蚪文的可以放心的參考

你如果和我一樣使用pycharm來編輯,加入第三方庫(kù)的步驟如下:

安裝好requests第三方庫(kù)后,開始測(cè)試

開始獲取HTML

怎么樣,驚喜不驚喜,簡(jiǎn)單不簡(jiǎn)單,使用其它語(yǔ)言,無(wú)法用這么簡(jiǎn)單的語(yǔ)句就獲得html的信息。

解析HTML

使用request獲取了網(wǎng)頁(yè)源碼,下一步就是如何解析了,你如果用過C++等語(yǔ)言,你會(huì)發(fā)現(xiàn)很難找到順心的網(wǎng)頁(yè)解析庫(kù),但python在這方面卻很擅長(zhǎng)。

還是用一個(gè)第三方庫(kù) Beautiful Soup

這是個(gè)什么庫(kù)呢?

直譯為:漂亮的湯?

難道是將網(wǎng)頁(yè)作為美味的湯,從這湯里慢慢品味其中滋味,抽絲剝繭的分析湯的構(gòu)成成分、湯的味道? 老外的思路,真難猜,先不管這個(gè)了。

說白了,就是用來解析HTML或XML,從中提取有用數(shù)據(jù)的庫(kù)。

而且也有強(qiáng)大的中文支持

首先分析,解析哪些鏈接

這應(yīng)該是按類別來分的,我們?cè)谠创a中找到這一項(xiàng)

之所以有亂碼,很可能是與我電腦沒有日文字體有關(guān)也可能編碼不正確,先不管它了,目前對(duì)解析無(wú)影響,可以看出,這些類別是放在class=menu的div下了,具體的就是這個(gè)DIV下的

1、好了,首先第一步,獲得這個(gè)DIV

這樣我們就獲得了這個(gè)DIV的內(nèi)容,下面再繼續(xù)解析這個(gè)DIV

2、解析DIV

解析這個(gè)DIV,還要以這個(gè)DIV內(nèi)容為參數(shù),構(gòu)造一個(gè)BeautifulSoup(以下簡(jiǎn)稱為BS :) 注意絕不是鄙視的意思)對(duì)象,因?yàn)槿挥幸粋€(gè)menu 類型的DIV,所以所有類型都保存在上面解析的div_menu[0]中了,將這個(gè)對(duì)象強(qiáng)制轉(zhuǎn)換為字符串類型做BS的參數(shù)

看源碼可以發(fā)現(xiàn),鏈接都是站內(nèi)鏈接

現(xiàn)在注意了,我要把所有的鏈接提取出來

輸出所有的鏈接

對(duì)應(yīng)HTML源碼

可以看到,第一個(gè) a標(biāo)簽,是沒有href屬性的,所以,會(huì)輸出None,其它a標(biāo)簽,正常輸出

因?yàn)檫@些都是站內(nèi)鏈接,

我們先定義一個(gè)變量,表示該站的域名

又因?yàn)?,有的鏈接可能是none,所以需要判斷下是否存在href屬性,下面是輸出所有鏈接的代碼

輸出的鏈接如下:

這樣,我們就正確的獲得了這些類別對(duì)應(yīng)的網(wǎng)址了。

下一步工作,下一節(jié)再說,現(xiàn)在還有些事,改天聊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容