Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,版權歸原做者全部,若有問題請及時聯繫咱們以做處理。前端

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 

原畫爬取

先看一下爐石傳說的原畫:
爐石傳說原畫連接:
http://news.4399.com/gonglue/lscs/kptj/正則表達式

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 

 

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 

該網站經過點擊查看更多加載新的內容,本打算使用Selenium模擬點擊獲取圖片信息 ,嘗試發現源碼中 該按鈕並沒有相應的跳轉連接json

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 


這不該該啊 沒有相應的跳轉連接 點擊後是如何加載新的圖片?後端

後來瀏覽總體網站源碼後 發現把問題想複雜 根本不須要模擬點擊查看更多網絡

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 


網站其實已經加載了全部的卡牌原畫 只是以後的原畫作了隱藏處理默認不展現 style=display學習

點擊查看更多後 顯示原畫測試

那麼只需使用requests獲取網頁源碼網站

用BeautiSoup/正則表達式/pyQuery解析元素 遍歷相應img的url 便可下載url

教訓:爬蟲前 不要根據網頁所對的操做實施相應的代碼爬取 不要有這樣的思惟定式 首先要作的是先大致瀏覽分析整個網頁的源代碼 有的可能直接寫在源碼或json或js中 無需再加工spa

卡牌爬取

爐石傳說卡牌連接:
http://cha.17173.com/hs/

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 

該網站經過下拉右邊的滾動條不斷加載新的卡牌

與上一個網站不一樣 上一個網站一次性寫入了全部卡牌 只不過作了隱藏處理

該網站是經過js動態加載渲染出的卡牌 直接獲取源碼 沒法獲得全部卡牌信息

那麼就用selenium模擬下拉滾動條(selenium簡直居家必備之神器)

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 

使用selenium執行js腳本 每次執行下拉1000個單位滾動條 執行90次

爲何是90次 測試出來的 大概90次拉到底

注意:這裏要增長1~3秒的暫停時間 用於網頁渲染

第一次沒有設置停留時間 沒法獲取新的數據 懷疑本身 懷疑人生

經前端/後端好友L君的提示 需增長暫停時間 這樣才能得到加載渲染後的數據

browser.page_source即可得到動態加載的全部數據

有了數據 以後就很簡單 正則匹配獲取相應url下載便可

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 

既然得到了這麼多卡牌和原畫 不能浪費 利用起來 拼圖!

Python爬蟲實戰:爐石傳說卡牌、原畫數據抓取

 

以上文章來源於碼農小黑屋,做者 丨像我這樣的人丨

本文分享 CSDN - 松鼠愛吃餅乾。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索