Python3中urllib库添加请求头的两种方式
Python3中urllib库添加请求头的两种方式
导入模块
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可以对响应对象进行状态码的访问、网页代码的读取等一系列操作。
- 它们在参数上具有一定的区别。
补充:
python 3的urllib库介绍
Python 3中的urllib模块可以用来处理URL,包括下载和上传文件、创建和读取cookie、访问Web API等。在本文中,我们将详细介绍urllib库中最常用的四个模块:urllib.request、urllib.parse、urllib.error和urllib.robotparser。
一、urllib.request模块
该模块提供了许多功能,如打开URL、读取其中的响应,以及设置请求头等。
打开URL 有两种方法打开URL,分别是使用urllib.request.urlopen()和 urllib.request.Request()。
1.1 使用urllib.request.urlopen()
可以使用urlopen()函数打开一个URL,如果给定了字符串参数,将尝试打开这个URL,并且返回一个 file-like 对象,在此对象上可以执行类似文件的操作。例如:
python import urllib.request response = urllib.request.urlopen(‘https://www.example.com/') print(response.read().decode(‘utf-8'))
此代码将在控制台输出从示例站点获取的HTML内容。
1.2 使用urllib.request.Request()
假设需要传递一些参数、HTTP头等信息,则可以使用Request()方法构造一个请求对象,然后再调用urlopen()发送请求。例如:
python import urllib.request req = urllib.request.Request(‘http://www.example.com/', data=b'some_data', headers={‘User-Agent': ‘Mozilla/5.0'}) response = urllib.request.urlopen(req) print(response.read().decode(‘utf-8'))
这里创建了一个请求对象,其中包含URL、数据(可[Cannot read property ‘status’ of undefined]
到此这篇关于Python3中urllib库的两种添加请求头的方式的文章就介绍到这了,更多相关Python3 urllib库添加请求头内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python如何解决secure_filename对中文不支持问题
最近使用到了secure_filename,然后悲剧的发现中文居然不展示出来,本文就详细的介绍一下解决方法,感兴趣的可以了解一下2021-07-07
最新评论