request()的基本使用
request()比urlopen()更加强大
首先我们先用一段代码感受一下
import socket
import urllib.request
import urllib.error
#request()基本使用
request=urllib.request.Request("https://www.python.org")
response=urllib.request.urlopen(request)
print(response.read().decode('utf-8'))
虽然用的还是urlopen()发送请求,不过灵活性更高
其中包含的参数有:
- URL data 跟urlopen()一样
- headers是一个字典 他就是请求头 可以用add_header()方法添加
- origin_req_host 指的是请求方的host名称或者ip地址
- unverifiable表示请求结果是否无法验证,默认false
- method是一个字符串 用来请求使用方式 get post put
实例:
from urllib import parse
from urllib import request
url="http://httpbin.org/post"
headers={
'user-Agent':'mozilla/4.0 (compatible;MSIE 5.5; Windows NT)',
'Host':'httpbin.org'
}
dict={
'name':'yanghhhh'
}
data=bytes(parse.urlencode(dict),encoding='utf-8')
req=request.Request(url=url,data=data,headers=headers,method='POST')
response=urllib.request.urlopen(req)
print(response.read().decode('utf-8'))
运行结果:
这样就完成了自己赋值