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

 更新时间:2023年10月13日 14:46:11   作者:BinaryMoon  
Python 3中的urllib模块可以用来处理URL,包括下载和上传文件、创建和读取cookie、访问Web API等,本文给大家介绍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之Python文档

    跟老齐学Python之Python文档

    文档,这个词语在经常在程序员的嘴里冒出来,有时候他们还经常以文档有没有或者全不全为标准来衡量一个软件项目是否高大上。那么,软件中的文档是什么呢?有什么要求呢?python文档又是什么呢?文档有什么用呢?
    2014-10-10
  • python基于OpenCV模块实现视频流数据切割为图像帧数据(流程分析)

    python基于OpenCV模块实现视频流数据切割为图像帧数据(流程分析)

    这篇文章主要介绍了python基于OpenCV模块实现视频流数据切割为图像帧数据,这里今天主要是实践一下视频流数据的预处理工作,需要的朋友可以参考下
    2022-05-05
  • 一篇文章了解Python中常见的序列化操作

    一篇文章了解Python中常见的序列化操作

    这篇文章主要给大家介绍了软玉Python中常见的序列化操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • PyTorch的torch.cat用法

    PyTorch的torch.cat用法

    这篇文章主要介绍了PyTorch的torch.cat用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python实现去除下载电影和电视剧文件名中的多余字符的方法

    python实现去除下载电影和电视剧文件名中的多余字符的方法

    这篇文章主要介绍了python实现去除下载电影和电视剧文件名中的多余字符的方法,可以批量修改视频文件名称,非常具有实用价值,需要的朋友可以参考下
    2014-09-09
  • PyCharm插件开发实践之PyGetterAndSetter详解

    PyCharm插件开发实践之PyGetterAndSetter详解

    这篇文章主要介绍了PyCharm插件开发实践-PyGetterAndSetter,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • python中的netCDF4批量处理NC文件的操作方法

    python中的netCDF4批量处理NC文件的操作方法

    这篇文章主要介绍了python的netCDF4批量处理NC格式文件的操作方法,使用python批量提取所有数据,查看数据属性,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 如何利用pytesseract识别图片中的数字

    如何利用pytesseract识别图片中的数字

    这篇文章主要介绍了如何利用pytesseract识别图片中的数字问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • python实现跨文件全局变量的方法

    python实现跨文件全局变量的方法

    这篇文章主要介绍了python实现跨文件全局变量的方法,需要的朋友可以参考下
    2014-07-07
  • python读写csv文件实例代码

    python读写csv文件实例代码

    在本篇文章中小编给各位分享了关于python读取和写入csv文件的知识点以及实例代码,需要的朋友们参考下。
    2019-07-07

最新评论