一.为什么我解析数据明明就是这个地位为什么拿不到

博问: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模板)(点击跳转)

五.对于app逆向