欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

小編給大家分享一下如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比弋陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式弋陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋弋陽地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。

1 確定爬取目標(biāo)

任何網(wǎng)站皆可爬取,就看你要不要爬取而已。本次選取的爬取目標(biāo)是當(dāng)當(dāng)網(wǎng),爬取內(nèi)容是 以 Python 為關(guān)鍵字搜索出來的頁面中所有書籍的信息。具體如下圖所示:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

本次爬取結(jié)果有三項(xiàng):

  • 圖書的封面圖片

  • 圖書的書名

  • 圖書的鏈接頁面
    最后把這三項(xiàng)內(nèi)容保存到 csv 文件中。

2 爬取過程

總所周知,每個站點(diǎn)的頁面 DOM 樹是不一樣的。所以我們需要先對爬取頁面進(jìn)行分析,再確定自己要獲取的內(nèi)容,再定義程序爬取內(nèi)容的規(guī)則。

2.1 確定 URL 地址

我們可以通過利用瀏覽器來確定URL 地址,為 urllib 發(fā)起請求提供入口地址。接下來,我們就一步步來確定請求地址。
搜索結(jié)果頁面為 1 時,URL 地址如下:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

搜索結(jié)果頁面為 3 時,URL 地址如下:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

搜索結(jié)果頁面為 21 時,即最后一頁,URL 地址如下:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

從上面的圖片中,我們發(fā)現(xiàn) URL 地址的差異就在于 page_index 的值,所以 URL 地址最終為 http://search.dangdang.com/?key=python&act=input&show=big&page_index=。而 page_index  的值,我們可以通過循環(huán)依次在地址后面添加。因此, urllib 請求代碼可以這樣寫:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

2.2 確定爬取節(jié)點(diǎn)

有了 URL 地址,就能使用 urllib 獲取到頁面的 html 內(nèi)容。到了這步,我們就需要找到爬取的節(jié)點(diǎn)的規(guī)則,以便于 BeautifulSoup 地解析。為了搞定這個問題,就要祭出大招 —— Chrome 瀏覽器的開發(fā)者功能(按下 F12 鍵就能啟動)。我們按下 F12 鍵盤,依次對每本書進(jìn)行元素檢查(在頁面使用鼠標(biāo)右鍵,點(diǎn)擊“檢查”即可),具體結(jié)果如下:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

從上圖可以得知解析規(guī)則:每本書的節(jié)點(diǎn)是一個 a 標(biāo)簽,a 標(biāo)簽具有 title,href,子標(biāo)簽 img 的 src 三個屬性,這三者分別對應(yīng)書名、書的鏈接頁面、書的封圖。看到這里也需你不會小激動,感嘆這不就是我們要感興趣的內(nèi)容嗎?得到解析規(guī)則,編寫B(tài)eautifulSoup 解析代碼就有了思路,具體代碼如下:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍運(yùn)行結(jié)果如下:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍這證明剛才制定規(guī)則是正確爬取我們所需的內(nèi)容。

2.3 保存爬取信息

我寫爬蟲程序有個習(xí)慣,就是每次都會爬取內(nèi)容持久化到文件中。這樣方便以后查看使用。如果爬取數(shù)據(jù)量比較大,我們可以用其做數(shù)據(jù)分析。我這里為了方便,就將數(shù)據(jù)保存到 csv 文件中。用 Python 將數(shù)據(jù)寫到文件中,我們經(jīng)常中文亂碼問題所煩惱。如果單純使用 csv 庫,可能擺脫不了這煩惱。所以我們將 csv 和 codecs 結(jié)合一起使用。在寫數(shù)據(jù)到 csv 文件的時候,我們可以通過指定文件編碼。這樣中文亂碼問題就迎刃而解。具體代碼如下:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍

看到這里,你可能會問為什么不把編碼指定為 gb2312 呢,這樣用 ecxel 打開就不會亂碼了?原因是當(dāng)書名全部為英文單詞時,使用 gb2312 編碼,writer.writerow()會出現(xiàn)編碼錯誤的問題。

如果你要用 excel 打開 PythonBook.csv文件, 你則需多執(zhí)行下面幾步:

  • 1) 打開 Excel

  • 2) 執(zhí)行“數(shù)據(jù)”->“自文本”

  • 3) 選擇 CSV 文件,出現(xiàn)文本導(dǎo)入向?qū)?/p>

  • 4) 選擇“分隔符號”,下一步

  • 5) 勾選“逗號”,去掉“ Tab 鍵”,下一步,完成

  • 6)在“導(dǎo)入數(shù)據(jù)”對話框里,直接點(diǎn)確定

3 爬取結(jié)果

最后,我們將上面代碼整合起來即可。這里就不把代碼貼出來了,具體閱讀原文即可查看源代碼。我就把爬取結(jié)果截下圖:

如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍以上是“如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:如何使用python爬取當(dāng)當(dāng)網(wǎng)所有Python書籍
本文來源:http://chinadenli.net/article26/ipcpjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT靜態(tài)網(wǎng)站網(wǎng)站改版用戶體驗(yàn)面包屑導(dǎo)航App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)