個人寫部落格習慣沒什麼理論偏向於實戰
一.為什麼我解析資料明明就是這個位置為什麼拿不到
博問: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中證照所在的位置,或者檢視他的校驗規則
三.關於亂碼
原因:人家是用二進位制進行傳輸常見的是用谷歌傳輸協議進行傳輸,大公司可能會自己寫一套演算法進行加密解析
四.關於加密(如今比較常見的加密)
RSA加密
我們解析頁面或者app反編譯後找他公鑰的時候找不到他公鑰
,這時候他加密可能就是通過模
和指數
進行加密的
AES加密
關於ASE加密有填充和無填充的識別方法
其實很簡單加密通一條加密資料連續2次加密加密內容,key,iv不變的情況
,最後輸出引數不變
就是無填充.變
就是填充
加密模板
五.關於app逆向
難點:工具的使用,尋找加密的經驗少,C和java要會,so層要用到彙編除錯,脫殼,所有呢同學們先打好基礎
hook工具推薦:
frida
:容易學,缺點語言比較弱有些位置沒法進行hook
yafha
:不容易學,相比與frida語言要強有些位置frida沒法hook可以用yafha
目前都在卡人數
網上的資料不會很多,如果真的要學推薦去看雪論壇
或吾愛破解
學習
也可以在我部落格上看,但是細節方面也沒寫的很到位,個人只用於自己使用
學習連結:python爬蟲(學習整理)(點選跳轉)