一.为什么我解析数据明明就是这个地位为什么拿不到
博问:https://q.cnblogs.com/q/132792/
谬误寻找内容办法:
在Element
中定位寻找到参数(很多页面能用然而会他并不是真正寻找数据的办法)
正确寻找内容办法:
咱们应该在network
页面response寻找咱们须要找的内容
起因
Element中是最终渲染后的内容,不肯定是咱们get网页url拿到的数据,期间会有些js或者其余数据接口会扭转他原始的界面
简略代码
import requestsfrom lxml.html import etreeurl = '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模板)(点击跳转)