gpt4 book ai didi

python - urllib2 HTTP 错误 400 : Bad Request

转载 作者:IT老高 更新时间:2023-10-28 20:49:13 27 4
gpt4 key购买 nike

我有一段这样的代码

host = 'http://www.bing.com/search?q=%s&go=&qs=n&sk=&sc=8-13&first=%s' % (query, page)
req = urllib2.Request(host)
req.add_header('User-Agent', User_Agent)
response = urllib2.urlopen(req)

当我输入一个多于一个单词的查询时,例如“the dog”,我收到以下错误。

response = urllib2.urlopen(req)
File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 438, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 400: Bad Request

谁能指出我做错了什么?提前致谢。

最佳答案

“狗”返回 400 错误的原因是您没有转义 URL 的字符串。

如果你这样做:

import urllib, urllib2

quoted_query = urllib.quote(query)
host = 'http://www.bing.com/search?q=%s&go=&qs=n&sk=&sc=8-13&first=%s' % (quoted_query, page)
req = urllib2.Request(host)
req.add_header('User-Agent', User_Agent)
response = urllib2.urlopen(req)

它会起作用的。

但是我强烈建议您使用 requests而不是使用 urllib/urllib2/httplib。这要容易得多,它会为您处理所有这些。

这是与 python 请求相同的代码:

import requests

results = requests.get("http://www.bing.com/search",
params={'q': query, 'first': page},
headers={'User-Agent': user_agent})

关于python - urllib2 HTTP 错误 400 : Bad Request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com