我在python 3.5中有以下代码。
import urllib.request
prof_list = open(r"C:\local\profanity.txt")
contents = prof_list.read()
connect = urllib.request.urlopen("http://wdyl.com/profanity?q="+contents)
output = connect.read()
connect.close()
prof_list.close()
当我运行代码时,我得到了
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
尽管付出了多少努力,仍无法想象。
答案 0 :(得分:1)
您需要将一个额外的参数传递给urllib.request.urlopen
,如下例所示:
urllib.request.urlopen('someurl.com', data=None) # if you have extra data to send to the server
请查看此PAGE以了解有关发送到服务器的不同信息的详情。
答案 1 :(得分:0)
您需要先对查询字符串进行编码,然后才能在网址中使用它。
from urllib.parse import quote
encoded_query=quote(query)
然后你可以使用
urllib.request.urlopen("http://wdyl.com/profanity?q="+encoded_query)