乐趣区

关于sass:关于数据抓取很多新人的误区

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

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

五. 对于 app 逆向

退出移动版