Curl转Python代码 (无需依赖Postman)

该文章介绍了一种方法,通过在浏览器中复制请求为curl命令,然后将其转换为Python代码,利用requests库进行二次开发和自动化操作。主要步骤包括解析curl命令获取URL、HTTP方法、头部信息和payload,然后构造并执行Pythonrequests请求。
摘要由CSDN通过智能技术生成

应用场景

需要对浏览器某些请求二次开发,完成批量操作等自动开发

使用说明

F12->网络 选中请求,右键复制为curl(bash),然后替换到下面代码curl变量,然后运行生成python代码

import requests
import json
import re

# curl为浏览器请求右键复制的curl(bash)版本,其他curl暂未测试
def curl_requests():
    curl = """
    curl 'http://xxx' \
      -H 'Accept: application/json, text/plain, */*' \
      -H 'Accept-Language: zh-CN,zh;q=0.9' \
      -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' \
      --data-raw '{"expr":null,"datasourceType":[],"warehouseType":[],"pagination":{"pageNum":1,"pageSize":10,"datasourceType":null,"warehouseType":null,"sort":"desc","sortField":"update_time"}}' \
      --compressed \
      --insecure  """
    method = "GET"
    payload = None

    rows = re.split("[ ]{3,}", curl.strip())
    url = re.match("curl \'(.*)\'", rows[0]).groups(0)[0]
    header = {}
    for row in rows[1:]:
        if row.startswith("-H"):
            groups = re.match("-H [$]?'([\w-]*): (.*)'", row).groups()
            key = groups[0]
            value = groups[1]
            header[key] = value
        if row.startswith("--data-raw"):
            payload = re.match("--data-raw '(.*)'", row).groups(0)[0]
    if payload is not None:
        method = "POST"

    print(f"url:{url}\nmethod:{method}\nheaders:{header}\npayload:{payload}\n")

    print("generate python requests")

    print(f"url='{url}'")
    print(f"headers={header}")
    print(f"payload={json.dumps(payload)}")
    print(f"response = requests.requests('{method}',url,payload,headers)")

注意事项

手动编写的curl未测试是否兼容,主要是格式要保持一致,代码是按照浏览器生成的curl格式解析的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值