这里只做一个抛砖引玉的记录,感兴趣的可以适用下,测试可以覆盖大部分适用场景。

一、安装

pip install curl-parsers

二、使用示例

  1. 浏览器打开开发者模式或者快捷键F12;
    image

  2. 导入库文件,粘贴上面复制的curl命令并运行脚本;

from curl_parsers import to_python
from curl_parsers import to_json
from curl_parsers import parse_curl

cmmd = """
curl 'https://ug.baidu.com/mcp/pc/pcsearch' \
  -H 'Accept: */*' \
  -H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -b 'BIDUPSID=016DEF38E920A76A523B27344D0F0456; PSTM=1748000492; BAIDUID=27957081761A206103B915D812ED08F6:FG=1; H_WISE_SIDS=62327_63144_63194_63211_63241_63265_63325_63356_63388_63186_63395_63390_63404_63465; MAWEBCUID=web_DRdZCandKxeXYGqaHjjUMjZwusucwQxqXSDBIIrPqwMQuuGgwB; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BAIDUID_BFESS=27957081761A206103B915D812ED08F6:FG=1; H_PS_PSSID=62327_63144_63211_63241_63265_63325_63388_63395_63390_63404_63457_63473_63478_63484; delPer=0; PSINO=1' \
  -H 'Origin: https://www.baidu.com' \
  -H 'Referer: https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=39042058_26_oem_dg&wd=%E7%BD%91%E6%98%93%E9%82%AE%E7%AE%B1&oq=%25E7%25BD%2591%25E6%2598%2593%25E9%2582%25AE%25E7%25AE%25B1&rsv_pq=a8f6431e0001a5ba&rsv_t=d8a373CvMaV6w96rSXESUfW49QLrxb5OxAbDsVicCJ3kJPtAOHjfg8tjLmb4XOxCIpcigP1IY6US&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: same-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0' \
  -H 'sec-ch-ua: "Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{"invoke_info":{"pos_1":[{}],"pos_2":[{}],"pos_3":[{}]}}'
"""
# print(parse_curl(cmmd))   # 输出解析后的字典数据
print(to_python(cmmd))    # 输出requests库的python代码
# print(to_json(cmmd))      # 输出curl命令的json数据
  1. 输出解析后的结果如下:
# 0.1.X版本 输出结果
import requests

headers = {
    'Accept': '*/*',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json',
    'Origin': 'https://www.baidu.com',
    'Referer': 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=39042058_26_oem_dg&wd=%E7%BD%91%E6%98%93%E9%82%AE%E7%AE%B1&oq=%25E7%25BD%2591%25E6%2598%2593%25E9%2582%25AE%25E7%25AE%25B1&rsv_pq=a8f6431e0001a5ba&rsv_t=d8a373CvMaV6w96rSXESUfW49QLrxb5OxAbDsVicCJ3kJPtAOHjfg8tjLmb4XOxCIpcigP1IY6US&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-site',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0',
    'sec-ch-ua': '"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"'
}

json_data = {'invoke_info': {'pos_1': [{}], 'pos_2': [{}], 'pos_3': [{}]}}

url = 'https://ug.baidu.com/mcp/pc/pcsearch'

response = requests.post(
    url,
    headers=headers,
    json=json_data,
    cookies={'BIDUPSID': '016DEF38E920A76A523B27344D0F0456', 'PSTM': '1748000492',
             'BAIDUID': '27957081761A206103B915D812ED08F6:FG=1',
             'H_WISE_SIDS': '62327_63144_63194_63211_63241_63265_63325_63356_63388_63186_63395_63390_63404_63465',
             'MAWEBCUID': 'web_DRdZCandKxeXYGqaHjjUMjZwusucwQxqXSDBIIrPqwMQuuGgwB',
             'BDORZ': 'FFFB88E999055A3F8A630C64834BD6D0', 'BAIDUID_BFESS': '27957081761A206103B915D812ED08F6:FG=1',
             'H_PS_PSSID': '62327_63144_63211_63241_63265_63325_63388_63395_63390_63404_63457_63473_63478_63484',
             'delPer': '0', 'PSINO': '1'}
)

print(response.text)

# 0.2.X版本 输出结果
import requests

headers = {
    'Accept': '*/*',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json',
    'Origin': 'https://www.baidu.com',
    'Referer': 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=15007414_20_dg&wd=curl_parsers&oq=curl_parsers&rsv_pq=e6e97dd0000360c7&rsv_t=90602LGs6Hz2zvyBY%2FsrWVwPCSRX4Jo13V5R1mHK6AQzJ4sW4c9OhzOwzcooEbl%2FXu1K5VQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-site',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0',
    'sec-ch-ua': '"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"'
}

json_data = {'invoke_info': {'pos_1': [{}], 'pos_2': [{}], 'pos_3': [{}]}}

url = 'https://ug.baidu.com/mcp/pc/pcsearch'

cookies = {'BIDUPSID': '5109366CF32F082921D9F8EB0E47EB02', 'PSTM': '1723536786', 'BAIDUID': '37C67B412D222DC87D7691EC57DA3338:FG=1', 'BDUSS': 'kczdGhBbmxmd3BYbGtYWWh1ZTFCZ1Z4RWRMcXd3cThrSDBVOEZJU2RLZVloRDVuRUFBQUFBJCQAAAAAAAAAAAEAAACzrs2B06LQ27XEyrnV3zkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj3FmeY9xZnV', 'BDUSS_BFESS': 'kczdGhBbmxmd3BYbGtYWWh1ZTFCZ1Z4RWRMcXd3cThrSDBVOEZJU2RLZVloRDVuRUFBQUFBJCQAAAAAAAAAAAEAAACzrs2B06LQ27XEyrnV3zkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj3FmeY9xZnV', 'MAWEBCUID': 'web_yUaVRKFqAjScrPdWeGRBTpRaEExyVXwtDvCeGrzblbmIYpInDx', 'MCITY': '-%3A', 'H_WISE_SIDS_BFESS': '62325_63147_63210_63269_63351_63385_63394_63391_63441_63473', 'BDSFRCVID': 'McAOJeC62r4ZanQssz15U1LHCi1uuK7TH6aovwpj9LCZquf_ATXpEG0PKx8g0K4bqm_IogKKXgOTHw0F_2uxOjjg8UtVJeC6EG0Ptf8g0M5', 'H_BDCLCKID_SF': 'tJ4DoD-hJKK3MCIwK-rjq4tehHRu5Mo9WDTm_Do-JUcHDxjRKnCajqQLX-7ma6otbm0f-pPKKR7-fPJFefvTWR_0bRnCLpvj3mkjbpvyfn02OIbPKtcryt4syPRvKMRnWTkjKfA-b4ncjRcTehoM3xI8LNj405OTbIFO0KJzJCcjqR8ZD60aD6QP', 'H_PS_PSSID': '62325_63147_63351_63441_63502_63540_63547_63568_63563_63584_63579_63607_63590', 'BDSFRCVID_BFESS': 'McAOJeC62r4ZanQssz15U1LHCi1uuK7TH6aovwpj9LCZquf_ATXpEG0PKx8g0K4bqm_IogKKXgOTHw0F_2uxOjjg8UtVJeC6EG0Ptf8g0M5', 'H_BDCLCKID_SF_BFESS': 'tJ4DoD-hJKK3MCIwK-rjq4tehHRu5Mo9WDTm_Do-JUcHDxjRKnCajqQLX-7ma6otbm0f-pPKKR7-fPJFefvTWR_0bRnCLpvj3mkjbpvyfn02OIbPKtcryt4syPRvKMRnWTkjKfA-b4ncjRcTehoM3xI8LNj405OTbIFO0KJzJCcjqR8ZD60aD6QP', 'BDORZ': 'FFFB88E999055A3F8A630C64834BD6D0', 'ab_sr': '1.0.1_NTJiNDEzMzVjN2Y1M2M1MDcxODI1MjQ1MmNhZDhhMmU0YWE3NzU1MWM0NzE3NmIwNDJlMWI3OGNhOTNkZDdmY2JlMzI3ZTY5YjVmZDQ2N2FmZTU4M2U4MDU0OGQ4OWQxOWYxOGU0MGE5OTdlMjVhNTkwZDg5MzMxN2YwMGU4NGNhNDkxNjlmNTZiMjQ2OWJlYTAyMGY0YzcxN2E1YThjYQ==', 'H_WISE_SIDS': '62325_63147_63351_63441_63502_63540_63547_63568_63563_63584_63579_63607_63590', 'BAIDUID_BFESS': '37C67B412D222DC87D7691EC57DA3338:FG=1', 'delPer': '0', 'PSINO': '2', 'BA_HECTOR': '008l2ka4a5a4ak0525242k85a185a51k4np6j24', 'ZFY': 'd8xAvRE3elVHqZchycNHrPB8CuGHAD4LmeVctUL4Hnc:C', 'RT': '"z=1&dm=baidu.com&si=34af95e1-7cd1-45f4-974a-50a2c9578980&ss=mbuhsiby&sl=6&tt=g58&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=g1p6&ul=2mihv&hd=2miif"', 'BDRCVFR[bPTzwF-RsLY]': 'mk3SLVN4HKm'}

response = requests.post(
    url,
    headers=headers,
    json=json_data,
    cookies=cookies
)

print(response.text)

posted on 2025-06-04 22:29  前进者-影子  阅读(163)  评论(0)    收藏  举报