1. 请求头中最常见的一些重要内容
User-Agent : 请求载体的身份标识(⽤啥发送的请求) Referer: 防盗链(这次请求是从哪个⻚⾯来的? 反爬会⽤到) cookie: 本地字符串数据信息(⽤户登录信息, 反爬的token)
2. 响应头中一些重要内容
cookie: 本地字符串数据信息(⽤户登录信息, 反爬的token) 各种神奇的莫名其妙的字符串(这个需要经验了, ⼀般都是token 字样, 防⽌各种攻击和反爬)
数据解析的四种方式
re解析 bs4解析(beautifulsoup) xpath解析 pyquery解析 这四种方式可以混合使用,完全以结果做导向,只要能拿到想要的数据。
正则表达式
元字符:具有固定含义的特殊符号,常用元字符 . 匹配除换⾏符以外的任意字符, 未来在python的re模块 中是⼀个坑. \w 匹配字⺟或数字或下划线 \s 匹配任意的空⽩符 \d 匹配数字 \n 匹配⼀个换⾏符 \t 匹配⼀个制表符 ^ 匹配字符串的开始 $ 匹配字符串的结尾 \W 匹配⾮字⺟或数字或下划线 \D 匹配⾮数字 \S 匹配⾮空⽩符 a|b 匹配字符a或字符b () 匹配括号内的表达式,也表示⼀个组 […] 匹配字符组中的字符 [^…] 匹配除了字符组中字符的所有字符 量词:控制前面的元字符出现的次数 重复零次或更多次 ? 重复零次或⼀次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 贪婪匹配和惰性匹配 .* 贪婪匹配, 尽可能多的去匹配结果 .*? 惰性匹配, 尽可能少的去匹配结果 -> 回溯 这两个要着重的说⼀下. 因为我们写爬⾍⽤的最多的就是这个惰性匹 配.
正则预加载
提前编写好正则对象
import re
obj = re. compile ( r"\d+" )
ret = obj. finditer( "abc123def456qqq789" )
for item in ret: print ( item. group( ) )
分组提取数据
a = """
<div class='⻄游记'><span id='10010'>中国联通</span></div>
<div class='⻄游记'><span id='10086'>中国移动</span></div>
"""
obj = re. compile ( r"<span id='(?P<id>\d+)'>(?P<name>.*?)</span>" )
ret = obj. finditer( a)
for item in ret: print ( item. group( "id" ) , item. group( "name" ) )
python中如何让"."匹配换行符、re.S
obj = re. compile ( r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>' , re. S)
app逆向四个阶段
快速了解app逆向到底干的什么 java基础 安卓开发 逆向+案例
安卓设备
真机 模拟器
# win: 逍遥、夜神、雷电、网易mumu
# max: 网页mum
win安装时需要开启vt。
安装网页mumu模拟器后,先开启root权限