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权限
标签:
爬虫
本文转载自: https://blog.csdn.net/weixin_42289273/article/details/132511657
版权归原作者 专职 所有, 如有侵权,请联系我们删除。
版权归原作者 专职 所有, 如有侵权,请联系我们删除。