日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫爬当当网_爬虫实战一:爬取当当网所有 Python 书籍

發布時間:2024/3/7 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫爬当当网_爬虫实战一:爬取当当网所有 Python 书籍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文轉載自微信公眾號[ 極客猴 ],作者知乎主頁

此前錯誤標注來源導致侵權,在此表示歉意。

我們已經學習 urllib、re、BeautifulSoup 這三個庫的用法。但只是停留在理論層面上,還需實踐來檢驗學習成果。因此,本文主要講解如何利用我們剛才的幾個庫去實戰。

1 確定爬取目標

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

本次爬取結果有三項:圖書的封面圖片

圖書的書名

圖書的鏈接頁面

最后把這三項內容保存到 csv 文件中。

2 爬取過程

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

2.1 確定 URL 地址

我們可以通過利用瀏覽器來確定URL 地址,為 urllib 發起請求提供入口地址。接下來,我們就一步步來確定請求地址。

搜索結果頁面為 1 時,URL 地址如下:

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

索結果頁面為 21 時,即最后一頁,URL 地址如下:

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

2.2 確定爬取節點

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

從上圖可以得知解析規則:每本書的節點是一個 a 標簽,a 標簽具有 title,href,子標簽 img 的 src 三個屬性,這三者分別對應書名、書的鏈接頁面、書的封圖??吹竭@里也需你不會小激動,感嘆這不就是我們要感興趣的內容嗎?得到解析規則,編寫BeautifulSoup 解析代碼就有了思路,具體代碼如下:

運行結果如下:

這證明剛才制定規則是正確爬取我們所需的內容。

2.3 保存爬取信息

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

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

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

執行“數據”->“自文本”

選擇 CSV 文件,出現文本導入向導

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

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

在“導入數據”對話框里,直接點確定

3 爬取結果

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

4 寫在最后

這次實戰算是結束了,但是我們不能簡單地滿足,看下程序是否有優化的地方。我把該程序不足的地方寫出來。該程序是單線程,沒有使用多線程,執行效率不夠高。

沒有應用面向對象編程思想,程序的可擴展性不高。

沒有使用隨機 User-Agent 和 代理,容易被封 IP。

你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:

總結

以上是生活随笔為你收集整理的python爬虫爬当当网_爬虫实战一:爬取当当网所有 Python 书籍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 9191国产精品 | 国产日产欧洲无码视频 | 日本伦理片在线播放 | 一区二区三区日韩视频 | 久久国产主播 | 亚洲码欧美码一区二区三区 | 在线观看黄色av | 免费av大片| 18+视频在线观看 | 亚洲熟妇国产熟妇肥婆 | 精品久久免费观看 | 亚洲暴爽| 在线免费av网站 | www.日日| 熟妇高潮一区二区三区在线播放 | 久久性片 | 久操久操久操 | 中文字幕av资源 | 青青草草视频 | 国产精品卡一卡二 | 人人超碰人人 | 国产精品日韩精品 | 男女草逼| 午夜不卡视频 | 国内精品久久久 | 琪琪色综合| 91中文在线| 国产精品天美传媒入口 | 国产视频福利 | 久久这里只有精品久久 | 爱爱动态图 | 91视频在线免费看 | 狠狠躁天天躁夜夜躁婷婷 | 亚洲永久网站 | 亚洲乱码国产乱码精品精98午夜 | 深夜在线免费视频 | 涩视频在线观看 | 乌克兰黄色片 | 精品无码一区二区三区电影桃花 | 国产男男chinese网站 | 国产精品jizz在线观看无码 | _级黄色片 | 国产白丝喷水 | 涩涩视频免费在线观看 | 免费萌白酱国产一区二区三区 | 日韩精品资源 | 啪啪短视频 | 欧洲熟妇精品视频 | www,久久久 | 久久另类ts人妖一区二区 | 一本大道东京热无码aⅴ | 蜜臀久久精品久久久用户群体 | 欧美日皮视频 | 丰满圆润老女人hd | 97在线免费视频观看 | 欧美成人一二区 | 亚洲加勒比 | 国产专区在线视频 | 91亚洲精品视频 | 亚洲久久天堂 | 观看免费av| 欧性猛交ⅹxxx乱大交 | 91国内精品久久久久 | 天天综合天天做天天综合 | 高清一二三区 | 野外一级片 | 在线成人免费电影 | 免费看国产黄色 | 隔壁邻居是巨爆乳寡妇 | 艳妇臀荡乳欲伦交换h漫 | aa免费视频 | 热99视频 | 欧美丰满熟妇xxxx | 91亚洲天堂| 精品国产一区二区三区噜噜噜 | 日本高清中文字幕 | 欧美国产视频一区 | 成人精品影视 | 91视频二区 | 女人16一毛片 | 麻豆影片 | 国产3p露脸普通话对白 | 国产无限制自拍 | 91传媒在线免费观看 | 超级碰在线观看 | 校园春色自拍偷拍 | 无码人妻丰满熟妇啪啪 | 免费三级大片 | 草久久av| 尤物精品在线观看 | 97色吧| 电影寂寞少女免费观看 | 日本美女全裸 | 精品一区二区在线观看视频 | 日韩国产片| 亚洲小说网 | 国产视频黄 | 天堂av资源 | av在线观看地址 |