开发者

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

开发者 https://www.devze.com 2023-11-19 12:28 出处:网络 作者: BinaryMoon
目录python3中urllib库添加请求头的两种方式导入模块方法一:build_opener类方式二:Request与urlopen类python 3的urllib库介绍一、urllib.request模块1.1 使用urllihttp://www.devze.comb.request.urlopen()1.2 使用
目录
  • python3中urllib库添加请求头的两种方式
    • 导入模块
    • 方法一:build_opener类
    • 方式二:Request与urlopen类
  • python 3的urllib库介绍
    • 一、urllib.request模块
      • 1.1 使用urllihttp://www.devze.comb.request.urlopen()
      • 1.2 使用urllib.request.Request()

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

导入模块

import urllib.request

方法一:build_openephpr类

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.comjavascript/', 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库添加请求头内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览javascript下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号