Python3中urllib库的两种添加请求头的方式

文章目录

  • 导入模块
  • 方法一: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两个请求类一起使用的主要原因:

  1. Request可以添加请求头,而urlopen不能。
  2. urlopen可以对响应对象进行状态码的访问、网页代码的读取等一系列操作。
  3. 它们在参数上具有一定的区别。

你可能感兴趣的:(Python3爬虫)