
爐石傳說原畫1

爐石傳說原畫2
本打算使用Selenium模擬點(diǎn)擊獲取圖片信息?
嘗試發(fā)現(xiàn)源碼中 該按鈕并無相應(yīng)的跳轉(zhuǎn)鏈接

這不應(yīng)該啊 沒有相應(yīng)的跳轉(zhuǎn)鏈接 點(diǎn)擊后是如何加載新的圖片?
后來瀏覽整體網(wǎng)站源碼后 發(fā)現(xiàn)把問題想復(fù)雜 根本不需要模擬點(diǎn)擊查看更多

網(wǎng)站其實已經(jīng)加載了所有的卡牌原畫 只是之后的原畫做了隱藏處理默認(rèn)不展示 ?style=display
點(diǎn)擊查看更多后 顯示原畫
那么只需使用requests獲取網(wǎng)頁源碼
用BeautiSoup/正則表達(dá)式/pyQuery解析元素 遍歷相應(yīng)img的url 即可下載
教訓(xùn):爬蟲前 不要根據(jù)網(wǎng)頁所對的操作實施相應(yīng)的代碼爬取 不要有這樣的思維定式 首先要做的是先大體瀏覽分析整個網(wǎng)頁的源代碼 ?有的可能直接寫在源碼或json或js中 無需再加工
關(guān)于怎么快速學(xué)Python,可以加下小編的Python學(xué)習(xí)qun:699+749+852,不管你是小白還是大牛,小編我都?xì)g迎,不定期分享干貨,歡迎初學(xué)和進(jìn)階中的小伙伴。每天晚上20:00都會開直播給大家分享Python知識和路線方法,qun里會不定期更新最新的教程

爐石傳說卡牌
該網(wǎng)站通過下拉右邊的滾動條不斷加載新的卡牌
與上一個網(wǎng)站不同 ?上一個網(wǎng)站一次性寫入了所有卡牌 只不過做了隱藏處理
該網(wǎng)站是通過js動態(tài)加載渲染出的卡牌 直接獲取源碼 無法得到所有卡牌信息
那么就用selenium模擬下拉滾動條(selenium簡直居家必備之神器)

使用selenium執(zhí)行js腳本 每次執(zhí)行下拉1000個單位滾動條 執(zhí)行90次
為什么是90次 測試出來的 大概90次拉到底
注意:這里要增加1~3秒的暫停時間 用于網(wǎng)頁渲染
第一次沒有設(shè)置停留時間 無法獲取新的數(shù)據(jù) ?懷疑自己 懷疑人生
經(jīng)前端/后端好友L君的提示 需增加暫停時間 這樣才能獲得加載渲染后的數(shù)據(jù)
browser.page_source便可獲得動態(tài)加載的所有數(shù)據(jù)
有了數(shù)據(jù) 之后就很簡單 正則匹配獲取相應(yīng)url下載即可

最后獲得了800張原畫 1324張卡牌


既然獲得了這么多卡牌和原畫 不能浪費(fèi) 利用起來 拼圖!
致敬下玩了好幾年的爐石


謝謝你!
順手拼一下女神

