使用Python爬取淘寶兩千款套套

在這裏插入圖片描述 各位同窗們,很久沒寫原創技術文章了,最近有些忙,因此進度很慢,給你們道個歉。html

警告:本教程僅用做學習交流,請勿用做商業盈利,違者後果自負!如本文有侵犯任何組織集團公司的隱私或利益,請告知聯繫豬哥刪除!!!python

1、淘寶登陸複習

前面咱們已經介紹過了如何使用requests庫登陸淘寶,收到了不少同窗的反饋和提問,豬哥感到很欣慰,同時對那些沒有及時回覆的同窗說聲抱歉!ajax

順便再提一下這個登陸功能,代碼是徹底沒有問題。若是你登陸出現申請st碼失敗的錯誤時候,能夠更換_verify_password方法中的全部請求參數。 在這裏插入圖片描述算法

淘寶登陸2.0改進中咱們增長了cookies序列化的功能,目的就是爲了方便爬取淘寶數據,由於若是你同一個ip頻繁登陸淘寶的話可能就會觸發淘寶的反扒機制chrome

關於淘寶登陸的成功率,在豬哥實際的使用中基本都能成功,若是不成功就按上面的方法更換登陸參數!json

2、淘寶商品信息爬取

這篇文章主要是講解如何爬取數據,數據的分析放在下一篇。之因此分開是由於爬取淘寶遇到的問題太多,而豬哥又打算詳細再詳細的爲你們講解如何爬取,因此考慮篇幅及同窗吸取率方面就分兩篇講解吧!宗旨還會不變:讓小白也能看得懂cookie

本次爬取是調用淘寶pc端搜索接口,對返回的數據進行提取、而後保存爲excel文件!數據結構

看似一個簡單的功能卻包含了不少問題,咱們來一點一點往下看吧!多線程

3、爬取單頁數據

開始寫一個爬蟲項目咱們都須要量化後再分步,而通常第一步即是先爬取一頁試試!app

1.查找加載數據URL

咱們在網頁中打開淘寶網,而後登陸,打開chrome的調試窗口,點擊network,而後勾選上Preserve log,在搜索框中輸入你想要搜索的商品名稱 在這裏插入圖片描述 這是第一頁的請求,咱們查看了數據發現:返回的商品信息數據插入到了網頁裏面,而不是直接返回的純json數據在這裏插入圖片描述

2. 是否有返回純json數據接口?

而後豬哥就好奇有沒有返回純json的數據接口呢?因而我就點了下一頁(也就是第二頁) 在這裏插入圖片描述 請求第二頁後豬哥發現返回的數據居然是純json,而後比較兩次請求url,找到只返回json數據的參數! 在這裏插入圖片描述 經過比較咱們發現搜索請求url中若是帶ajax=true參數的話就直接返回json數據,那咱們是否是能夠直接模擬直接請求json數據!

因此豬哥就直接使用第二頁的請求參數去請求數據(也就是直接請求json數據),可是請求第一頁就出現錯誤: 在這裏插入圖片描述 直接返回一個連接而 不是json數據,這個連接是什麼鬼?點一下。。。 在這裏插入圖片描述 鐺鐺鐺,滑塊出現,有同窗會問:**用requests能搞定淘寶滑塊嗎?**豬哥諮詢過幾個爬蟲大佬,滑塊的原理是收集響應時間,拖拽速度,時間,位置,軌跡,重試次數等而後判斷是不是人工滑動。並且還常常變算法,因此豬哥選擇放棄這條路!

3.使用請求網頁接口

因此咱們選擇相似第一頁(請求url中不帶ajax=true參數,返回整個網頁形式)的請求接口,而後再把數據提取出來!

在這裏插入圖片描述 這樣咱們就能夠爬取到淘寶的網頁信息了

4、提取商品屬性

爬到網頁以後,咱們要作的就是提取數據,這裏先從網頁提取json數據,而後解析json獲取想要的屬性。

1.提取網頁中商品json數據

既然咱們選擇了請求整個網頁,咱們就須要瞭解數據內嵌在網頁的哪一個位置,該怎麼提取出來。

通過豬哥搜索比較發現,返回網頁中的js參數:g_page_config就是咱們要的商品信息,並且也是json數據格式! 在這裏插入圖片描述 而後咱們寫一個正則就能夠將數據提取出來了!

goods_match = re.search(r'g_page_config = (.*?)}};', response.text)

2.獲取商品價格等信息

要想提取json數據,就要了解返回json數據的結構,咱們能夠將數據複製到一些json插件或在線解析 在這裏插入圖片描述 瞭解json數據結構以後,咱們就能夠寫一個方法去提取咱們想要的屬性了 在這裏插入圖片描述

5、保存爲excel

操做excel有不少庫,網上有人專門針對excel操做庫作了對比與測評感興趣能夠看看:https://dwz.cn/M6D8AQnq

豬哥選擇使用pandas庫來操做excel,緣由是pandas比較操做方便且是比較經常使用數據分析庫!

1.安裝庫

pandas庫操做excel實際上是依賴其餘的一些庫,因此咱們須要安裝多個庫

pip install xlrd
pip install openpyxl
pip install numpy
pip install pandas

2.保存excel

在這裏插入圖片描述 這裏有點坑的是pandas操做excel沒有追加模式,只能先讀取數據後使用append追加再寫入excel!

查看效果 在這裏插入圖片描述

6、批量

一次爬取的整個流程(爬取、數據提取、保存)完成以後,咱們就能夠批量循環調用了。 在這裏插入圖片描述 這裏設置的超時秒數是豬哥實踐出來的,從3s、5s到10s以上,太頻繁容易出現驗證碼! 在這裏插入圖片描述 豬哥分屢次爬取了兩千多條數據 在這裏插入圖片描述

7、爬取淘寶遇到的問題

爬取淘寶遇到了很是多的問題,這裏爲你們一一列舉:

1.登陸問題

在這裏插入圖片描述 問題:申請st碼失敗怎麼辦? 回答:更換_verify_password方法中的全部請求參數。

參數沒問題的話登陸基本都會成功!

2.代理池

爲了防止本身的ip被封,豬哥使用了代理池。爬取淘寶須要高質量的ip才能爬取,豬哥試了不少網上免費的ip,基本都不能爬取。 在這裏插入圖片描述

可是有一個網站的ip很好 站大爺http://ip.zdaye.com/dayProxy.html ,這個網站每小時都會更新一批ip,豬哥試過仍是有不少ip是能夠爬取淘寶的。

3.重試機制

爲了防止正常請求失敗,豬哥在爬取的方法上加上了重試機制! 在這裏插入圖片描述 須要安裝retry庫

pip install retry

4.出現滑塊

上面那些都沒問題,可是仍是會出現滑塊,豬哥測試過不少次,有些爬取20次-40次左右最容易出現滑塊。 在這裏插入圖片描述 出現滑塊只能等個半小時後繼續爬,由於目前還不能使用requests庫解決滑塊,後面學習selenium等其餘框架看看是否能解決!

5.目前這隻爬蟲

目前這隻爬蟲並不完善,只能算是半成品,有不少能夠改進的地方,好比自動維護ip池功能,多線程分段爬取功能,解決滑塊問題等等,後面咱們一塊兒來慢慢完善這隻爬蟲,使他能夠成爲一隻完善懂事的爬蟲!

獲取源碼:關注vx公衆號:裸睡的豬,回覆:淘寶 獲取,快去試試你感興趣的商品吧!

原文出處:https://www.cnblogs.com/pig66/p/11475455.html

相關文章
相關標籤/搜索