1. 程式人生 > >Python又來爬取妹子圖啦,一個T的硬盤都不夠用

Python又來爬取妹子圖啦,一個T的硬盤都不夠用

chrome 三方 動態加載 python bsp img 第三方庫 post請求 mode

淘女郎爬蟲,可動態抓取淘女郎的信息和照片。

技術分享圖片

技術分享圖片

需要額外安裝的第三方庫

  • requests
  • pip install requests
  • pymongo
  • pip install pymongo

學習Python過程中會遇到很多問題,你可以到我們的 python學習交流群【七 三 五,九 三 四,八 四 一】,基礎,進階。從企業招聘人才需求 到怎麽學習python,和學習什麽內容都有免費系統分享,讓你無論是自學還是找相應的培訓都能讓你少走彎路。希望可以幫助你快速了解Python,學習python

模塊功能

  • TaoLady.py: 負責發送POST請求和抓取個人信息和圖片地址並保存到MongoDB中。
  • Download_Pic.py: 負責從MongoDB中抽取出淘女郎照片的網址,並下載。

原理

淘女郎的網站使用了AJAX技術。通過在後臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。這意味著通過直接抓取網頁源代碼然後分析出信息的方式是行不通的,因為網站是動態加載的,直接抓取的方式只能抓到網頁原始的源代碼,並不能抓到動態加載出的淘女郎的信息。

對於這一類網站,一般有兩種抓取辦法:

  1. 利用selenium庫來模擬瀏覽器的用戶行為,讓服務器以為是真正的用戶在瀏覽網頁,從

而獲得完整的網頁源代碼

2.利用Chrome等瀏覽器自帶的分析工具,對網頁的Network進行監控,分析出數據交換的 API,從而利用API抓取到數據交換的JSON數據,從而進行抓取。

一般來講,第一種方法速度較慢,並且運行時占用較多的系統資源,所以,條件允許的情況下,盡量使用第二種方法。

在Chrome瀏覽器中打開淘女郎的主頁https://mm.taobao.com/search_tstar_model.htm? 按F12切換到開發者模式,在Network一欄選擇XHR可以看到目前沒有網絡活動,但是,在網頁中按下一頁的時候,會出現一個POST活動,當再次按下下一頁的時候,會再次出現一次該活動,所以,可以斷定,數據交換使用的就是這個API。然後我們再來對比這兩次請求,在Headers框的FromData欄中,可以看到兩次請求的差別在currentPage的不同,一個是2,一個是3,這說明,要想得到第幾頁的數據,這個currentPage的值就是多少。所以我們就根據這個,來編寫請求,從而得到全部淘女郎信息的JSON文件。

技術分享圖片

Python爬取妹子,哇!太多了,看不過來了,我一個G的硬盤要滿了

發送請求,得到JSON數據,將其加工並轉化為Python的字典類型返回

技術分享圖片

Python爬取妹子,哇!太多了,看不過來了,我一個G的硬盤要滿了

Python爬取妹子,哇!太多了,看不過來了,我一個G的硬盤要滿了

連接到MongoDB, 將信息保存

技術分享圖片

抽取出照片的網址,下載,保存在pic文件夾中

技術分享圖片

image.png

爬完了,成果斐然啊

技術分享圖片

Python又來爬取妹子圖啦,一個T的硬盤都不夠用