爬虫post请求传参时Content-Type:application/x-www-form-urlencoded

Unexpected character encountered while parsing value: l. Path , line 0, position 0.

该错误消息指出,在解析值时遇到了意外的字符“l”,这通常意味着服务器期望接收的数据格式与实际发送的数据格式不匹配。

  1. 参数格式不正确:确保你的params字典中的所有键和值都被正确地编码为URL编码的字符串。requests通常会为你处理这个问题,但如果你手动构建了某些参数,它们可能需要被正确地编码。

  2. 复杂的数据结构application/x-www-form-urlencoded格式不支持嵌套的数据结构。如果你的params字典中包含了嵌套的字典或列表,你需要将它们转换为可以被URL编码的字符串。

  3. JSON数据:如果服务器实际上期望接收JSON格式的数据,那么你需要将Content-Type更改为application/json,并将params转换为JSON字符串。

尝试如下操作

import requests
import urllib.parse

url = "https://www.taizhou.gov.cn/tqy/DataListConfig/GetDataListHandler.ashx"

headers = {
    # ...你的其他头部...
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}

params = {
    "a": 'init',
    "_d": current_timestamp_ms,
    "page": 1,
    "limit": 20,
    # ...其他参数...
}

# 将params字典转换为URL编码的字符串
encoded_params = urllib.parse.urlencode(params)

res = requests.post(url, data=encoded_params, headers=headers, verify=False)

if res.status_code == 200:
    print(res.text)
else:
    print(f"Error: {res.status_code}")
    print(res.text)  # 打印错误信息

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值