關於資料抓取很多新人的誤區

小小鹹魚YwY發表於2020-12-31

個人寫部落格習慣沒什麼理論偏向於實戰

一.為什麼我解析資料明明就是這個位置為什麼拿不到

博問:https://q.cnblogs.com/q/132792/

錯誤尋找內容方法:

Element中定位尋找到引數(很多頁面能用但是會他並不是真正尋找資料的方法)

正確尋找內容方法:

我們應該在network頁面response尋找我們需要找的內容

正確位置

原因

Element中是最終渲染後的內容,不一定是我們get網頁url拿到的資料,期間會有些js或者其他資料介面會改變他原始的介面

簡單程式碼

import requests
from lxml.html import etree

url = 'https://www.cosme.net/product/product_id/10189603/top'
res  =requests.get(url) #為什麼不加請求頭呢,人家沒校驗請求頭就不用加了,不過多程式多執行緒爬取時候請務必和真實請求一模一樣
res_demo = etree.HTML(res.text)
meta_content = res_demo.xpath("//*[@property='og:title']/@content")[0].split('|')[2]
print(meta_content)

二.抓不到包

情況一

證照位置本地校驗

解決方法

adb命令將抓包工具證照從使用者目錄移動至系統目錄,解決反爬對於本地證照認證(點選跳轉)

情況二

對於抓包工具的監測

解決方法

如果是頁面:使用network介面抓取

如果是app:python爬蟲用drony轉發進行抓包轉發(點選跳轉),ProxyDroid+wifi設定抓xx點評抓不到的包(點選跳轉)

情況三

對於協議進行判斷

解決方法

VirtualXposed結合justTrustMe 模組傻瓜式破解app沒法抓包問題(點選跳轉)

情況四

證照雙向認證

解決方法

找到app中證照所在的位置,或者檢視他的校驗規則

三.關於亂碼

原因:人家是用二進位制進行傳輸常見的是用谷歌傳輸協議進行傳輸,大公司可能會自己寫一套演算法進行加密解析

python谷歌序列化傳輸(點選跳轉)

四.關於加密(如今比較常見的加密)

RSA加密

我們解析頁面或者app反編譯後找他公鑰的時候找不到他公鑰,這時候他加密可能就是通過指數進行加密的

AES加密

關於ASE加密有填充和無填充的識別方法

其實很簡單加密通一條加密資料連續2次加密加密內容,key,iv不變的情況,最後輸出引數不變就是無填充.就是填充

加密模板

直接拿取用就好了(python模板)(點選跳轉)

五.關於app逆向

難點:工具的使用,尋找加密的經驗少,C和java要會,so層要用到彙編除錯,脫殼,所有呢同學們先打好基礎

hook工具推薦:

frida:容易學,缺點語言比較弱有些位置沒法進行hook

yafha:不容易學,相比與frida語言要強有些位置frida沒法hook可以用yafha

目前都在卡人數網上的資料不會很多,如果真的要學推薦去看雪論壇吾愛破解學習

也可以在我部落格上看,但是細節方面也沒寫的很到位,個人只用於自己使用

學習連結:python爬蟲(學習整理)(點選跳轉)

相關文章