一. 为什么我解析数据明明就是这个地位为什么拿不到
博问: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 模板)(点击跳转)