文章目录
- 导入模块
- 方法一:build_opener类
- 方法二:Request与urlopen类
导入模块
import urllib.request
方法一:build_opener类
link = 'https://movie.douban.com/top250'
# 在这里,必须使用元组或列表的方式定制请求头。
headers = ('user-agent','mozilla/5.0')
opener = urllib.request.build_opener()
# 请求头会以列表包含元组或列表的方式进行保存。
opener.addheaders = [headers]
r = opener.open(link,timeout=10)
# 打印请求状态码,这里返回200,表示请求成功。
print(r.code)
方式二:Request与urlopen类
link = 'https://movie.douban.com/top250'
headers = {'user-agent':'mozilla/5.0'}
'''
使用Request类添加请求头可以不使用headers这个参数。而使用这个类的实例化对象的方法
add_header(key='user-agent',val='mozilla/5.0')
'''
add = urllib.request.Request(url=link,headers=headers)
r = urllib.request.urlopen(url=add,timeout=10)
print(r.code)
在方式二中,urllib库中Request与urlopen两个请求类一起使用的主要原因:
- Request可以添加请求头,而urlopen不能。
- urlopen可以对响应对象进行状态码的访问、网页代码的读取等一系列操作。
- 它们在参数上具有一定的区别。