parse.urlencode和request.Request

from urllib import request,parse

url = 'http://so.123.com.cn/'
headers = {
    'User_Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64)AppleWebKit/537.36                 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36',
    'Referer':'http://so.123.com.cn/'
}
dict = {
    'name':'hello'
}
data = bytes(parse.urlencode(dict),encoding='utf-8') #这串代码啥意思啊?打印了一下data,结果是name=hello,这个有啥作用呢?
req=urllib.request.Request(url=url,data=data,headers=headers,method='POST')#method传POST就说明是POST请求?这句代码是不是相当于把几个参数打包起来,赋给req后面一起处理啊?
response = request.urlopen(req)
print(response.read().decode('utf-8'))

阅读 2.4k
2 个回答

parse.urlencode方法的作用是把dict格式的参数转换为url参数,并以utf-8编码,可以拼接为HTTP请求。


In [1]: from urllib.parse import urlencode
   ...: urlencode({'a':1,'b':'你好'})
   ...:
Out[1]: 'a=1&b=%E4%BD%A0%E5%A5%BD'

注意不要覆盖内置方法 dict

dict = {
    'name': 'hello'
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题