python怎么提取raw的通道_python3 使用Fiddler捕获的Raw信息带cookie使用GET或POST获取...

该博客介绍了如何利用Python的requests库处理通过Fiddler捕获的RAW信息,包括GET和POST请求。通过定义函数getWithFiddlerGetCookie和getWithFiddlerPostCookie,分别处理GET和POST请求中的cookie,实现对HTTP请求的重放。这两个函数使用了retry装饰器,以处理可能的网络异常。
摘要由CSDN通过智能技术生成

importrequestsfrom retrying importretrydefis_request_exception(e):print(e)returnTrue

getcookie='''GET http://www.xxx.com HTTP/1.1

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Connection: keep-alive

Cookie: ASP.NET_SessionId=zempp5fkn3tdwzdee0jl3lvx

Upgrade-Insecure-Requests: 1'''@retry(retry_on_exception=is_request_exception,wait_random_min=2000, wait_random_max=10000)defgetWithFiddlerGetCookie(getcookie,visiturl):

lines= [i.strip() for i in getcookie.split("\n")]#fiddler request Raw 的起始行为完整

(method, url, _) =lines[0].split()if method == 'POST':

body= lines[-1]

lines= lines[1:-2]#POSt则lines[-2]为''(空行), lines[-1]为body

else:

lines= lines[1:-2]#GET则lines[-1]为''(空行)

headers={}for line inlines:

k, v= line.split(':',1)

headers[k]=vif method == 'POST':

r= requests.post(visiturl, headers=headers, data=body, verify=False,timeout=30)else:

r= requests.get(visiturl, headers=headers, verify=False,timeout=30)returnr

postcookie='''POST http://www.xxx.com HTTP/1.1

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

Accept: application/json, text/javascript, */*; q=0.01

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

X-Requested-With: XMLHttpRequest

Content-Length: 38

Connection: keep-alive

Cookie: ASP.NET_SessionId=zempp5fkn3tdwzdee0jl3lvx

body=00001'''@retry(retry_on_exception=is_request_exception,wait_random_min=2000, wait_random_max=10000)defgetWithFiddlerPostCookie(postcookie,visiturl,Referer,body):

lines= [i.strip() for i in postcookie.split("\n")]

(method, url, _)=lines[0].split()if method == 'POST':#body = lines[-1] #数据由程序传递

lines = lines[1:-2]#POSt则lines[-2]为'', lines[-1]为body

else:

lines= lines[1:-2]#GET则lines[-1]为''

headers={}for line inlines:

k, v= line.split(':',1) #:注意后面有空格

headers[k] =v

headers['Referer']=Referer#requests 自动处理3xx

if method == 'POST':

r= requests.post(visiturl, headers=headers, data=body, verify=False,timeout=30) else:

r= requests.get(visiturl, headers=headers, verify=False, timeout=30) return r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值