python3 15行程式碼爬取煎蛋網大圖(原圖)--基礎逆向破解js-------------------玉米都督
阿新 • • 發佈:2018-11-09
如果您覺得我的文章對您有用,請您給我一個關注,您的每一個關注都是對我極大的支援,我也會極大的提高產出效率,To_share_code
做爬蟲 基本功就是逆向js,
ps: 其實沒必要關心js函式的內部細節,只要找到函式的輸入輸出點就可以了。
萬變不離其宗,只要在 輸入、輸出的地方下斷點,得到處理的結果,就算函式再複雜也不用怕。
煎蛋網是一個初學者接觸逆向js思路的首戰
上網站: 煎蛋網 妹子圖
妹子首頁
目的:想拿 檢視原圖的 高清原圖
檢視原始碼
發現所有圖片img src指向是 blank.gif
後面還有一個onload = 'jiandan_load_img(this)' 然後 還有一堆字母
我們定位到jiandan_onload_img 這個js
打個斷點 debugger
發現這個e 和之前看的 html中的 非常像. 而且這個e 作為引數 傳進了一個 jdXXXXXXXXXXXXX的 函式中
咱們再追溯到jdXXXXXXXX函式中
打個斷點繼續除錯
發現這個函式最後return u
u = base64_decode(d)
d = 之前咱們在html 中的 一串英文字母
所以,我們只需把 html頁面的英文字母用base64 解碼 就可以得到原圖的src地址了
上程式碼
#!/usr/bin/python # _*_ coding:utf-8 _*_ import base64 import requests from bs4 import BeautifulSoup url = 'http://jandan.net/ooxx' large_url = 'http://ws4.sinaimg.cn/large/' #大圖url response =requests.get(url=url) # html response.encoding = 'utf-8' soup = BeautifulSoup(response.text,'lxml') for i in soup.select('.img-hash'): link = base64.b64decode(i.text.encode('utf-8')) base_link = str(link,'utf-8').split('/')[-1] large_link = large_url+base_link print(large_link)
算上註釋15行
執行後輸出
點選訪問
前方高能!!!!!!!!!!!!!!!!!
http://ws4.sinaimg.cn/large/87a8e3e8ly1fv7vgxm8a5j20zk1hcti8.jpg