首页 > 编程语言 > 详细

python3 使用Fiddler捕获的Raw信息带cookie使用GET或POST获取

时间:2019-11-24 23:23:05      阅读:302      评论:0      收藏:0      [点我收藏+]
import requests
from retrying import retry

def is_request_exception(e):
    print(e)
    return True


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)
def getWithFiddlerGetCookie(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 in lines:
        k, v = line.split(: ,1)
        headers[k] = v

    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


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)
def getWithFiddlerPostCookie(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 in lines:
        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)
        r.encoding = UTF-8
    else:
        r = requests.get(visiturl, headers=headers, verify=False, timeout=30)
        r.encoding = UTF-8
    return r

 

技术分享图片

python3 使用Fiddler捕获的Raw信息带cookie使用GET或POST获取

原文:https://www.cnblogs.com/yanghao2008/p/11924816.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!