1. 程式人生 > >python3 15行程式碼爬取煎蛋網大圖(原圖)--基礎逆向破解js-------------------玉米都督

python3 15行程式碼爬取煎蛋網大圖(原圖)--基礎逆向破解js-------------------玉米都督

如果您覺得我的文章對您有用,請您給我一個關注,您的每一個關注都是對我極大的支援,我也會極大的提高產出效率,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