requests.exceptions.InvalidHeader: Invalid return character or leading space in header: cookie

今天写爬虫遇到个问题:

raise InvalidHeader(“Invalid return character or leading space in header: %s” % name)
requests.exceptions.InvalidHeader: Invalid return character or leading space in header: cookie

查了查,原来是header请求头不能有空格!
错误形式:

cookies = '''
ASP.NET_SessionId=w02e4xvchkh1j013shpl5akt; '''

正确形式:

cookies = '''ASP.NET_SessionId=w02e4xvchkh1j013shpl5akt; '''

参考:
https://blog.csdn.net/weixin_42036729/article/details/80031768
https://blog.csdn.net/qq_37012770/article/details/84066150

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 看起来您正在使用 Python 的 requests 库发起 HTTP 请求时遇到了一个异常,提示为 "requests.exceptions.invalidheader: invalid return character or leading space in header: user-agent"。 这个异常通常表示您在请求头中的 User-Agent 字段中使用了无效的字符,可能是一些不可见的字符,例如回车符或空格。HTTP 协议规定请求头中的字段必须是 ASCII 字符,因此包含非 ASCII 字符的请求头可能会引起这个异常。 要解决这个问题,您可以尝试检查请求头中的 User-Agent 字段,确保它只包含 ASCII 字符。您可以尝试删除请求头中的所有空格、回车符等不可见字符,或者使用一个合法的 User-Agent 值来替换当前的值。 例如,您可以将 User-Agent 设置为常见的浏览器标识符,例如 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",这是 Chrome 浏览器的标识符。您可以将其作为 User-Agent 字段的值来使用: ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get('https://www.example.com', headers=headers) ``` 希望这可以帮助您解决问题! ### 回答2: requests.exceptions.invalidheader: invalid return character or leading space in header: user-agent 是请求时由 requests 模块抛出的一个异常。这种异常通常是由于 HTTP 的请求头信息中出现了不符合规范的字符或空格导致的。 首先需要理解 HTTP 请求头,它是向服务器发送的与 HTTP 请求相关的附加信息,包括浏览器信息、Cookie 信息、用户代理信息、缓存控制信息等,它们通过键值对的方式依次排列,每个键值对之间要用回车和换行符隔开。由于 HTTP 协议规定了请求头信息的格式要求,如果出现了不符合规范的字符或其他错误,就会抛出该异常。 一个常见的原因是在请求头信息中包含了不合法的字符或空格,这些字符可能是因为系统错误使用了不兼容的字符编码或者因为在复制文本时产生了空格符。为了解决这个问题,可以尝试修改请求头信息中的字符,也可以使用其它的 HTTP 请求库。 除此之外,还有一些可能会导致请求头信息异常的情况,如网络问题、服务器响应超时等。在这些情况下,可以尝试重新请求,或者调整请求头信息中的参数,以确保其符合 HTTP 协议的规范。 ### 回答3: 该错误是由于请求报头中"user-agent"的格式不符合标准要求所导致的。 "user-agent"是HTTP请求头中的一个重要部分,它用于标识发送请求的客户端类型。通常情况下,它应该是一个字符串类型的值,并且不能包含不合法的字符,如回车符或前导空格。 当我们发送一个请求时,请求报头中的"user-agent"需要遵循特定的规范。如果"user-agent"的格式不正确,服务器就无法正确解析请求报头,并返回一个"requests.exceptions.invalidheader"异常。 为了解决这个问题,通常需要检查请求报头中"user-agent"的格式是否符合标准要求。如果不符合,可以尝试更换一个合法的"user-agent"值,或者将其格式进行修正。 另外,在编写爬虫程序时,也应该遵循合法的网络爬虫规范,包括设置正确的"user-agent"值,以避免对服务器造成过度的负担,并保护自己的程序不被封禁。 总之,该异常是由于请求报头中"user-agent"格式不正确所导致的,我们可以检查请求报头中"user-agent"的格式是否符合标准要求,并进行相应的修正。同时,在编写爬虫程序时应遵循合法的网络爬虫规范,以确保程序的稳定运行和不被封禁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值