python爬虫之urllib库常用方法用法总结大全

Python爬虫之urllib库常用方法用法总结大全

urllib库介绍

urllib是Python自带的HTTP请求库,包含四个子模块:
- urllib.request,用于打开和读取URL
- urllib.error,包含urllib.request产生的异常
- urllib.parse,用于解析URL
- urllib.robotparser,用于解析robots.txt文件

urllib.request模块

urllib.request模块定义了各种HTTP请求相关的类和函数,如下列表:

函数 描述
request() 发送HTTP请求
urlopen() 打开URL地址
urlretrieve() 下载URL内容到本地
urlcleanup() 清除由于urlretrieve函数产生的缓存
pathname2url() 将本地路径转化成URL路径
url2pathname() 将URL路径转化成本地路径

urlopen函数

urlopen()函数用于打开URL地址,它的常用参数有:

  • url:打开的URL地址
  • data:请求的数据,如果传递这个参数,HTTP请求会变成POST请求,传递参数到服务器,HTTP请求对象变成HTTP POST请求对象
  • timeout:设置超时时间,单位是秒,如果指定时间内服务器没有响应,就会抛出异常

示例1:使用urllib.request.urlopen()获取百度首页的HTML代码

import urllib.request

response = urllib.request.urlopen('https://www.baidu.com/')
html = response.read()
print(html.decode('utf-8'))

request函数

request函数用于发送HTTP请求,它支持多种HTTP请求方式,如下列表:

  • GET:获取数据
  • POST:提交数据
  • PUT:更新数据
  • HEAD:获取响应头
  • DELETE:删除数据

它的常用参数有:

  • url:请求的URL地址
  • data:请求的数据,以字节流的方式进行传递
  • headers:请求头信息
  • method:HTTP请求方法
  • timeout:请求的超时时间

示例2:使用urllib.request.Request()方法发送GET请求。

import urllib.request

url = 'http://httpbin.org/get'
req = urllib.request.Request(url)
response = urllib.request.urlopen(req)
html = response.read()
print(html.decode('utf-8'))

urllib.parse模块

urllib.parse模块提供了一些实用的URL处理函数,如下列表:

函数 描述
urlparse() 解析URL地址
urlsplit() 和urlparse()类似,但是只返回5个元素(scheme,netloc,path,query,fragment)
urlunparse() 组合URL元素成完整URL
urljoin() 将基础URL和相对URL拼接成完整URL
urlencode() 将字典或者元组类型的数据转换成URL请求参数
parse_qs() 将URL参数转换成一个字典类型
quote() URL编码函数,将字符串内容转换为url安全的形式
unquote() URL解码函数,将URL安全字符串转换回原来的字符串形式

示例3:使用urllib.parse.urlencode将字典转换为URL参数格式的字符串

import urllib.parse

params = {'name': 'Jack', 'age': 18}
query_string = urllib.parse.urlencode(params)
print(query_string)

以上是urllib库的常用方法和用法。

总结

本文介绍了urllib库的常用方法,包括urllib.request模块和urllib.parse模块,通过示例分别展示了获取网页HTML代码,发送HTTP GET请求和将字典转换为URL参数格式字符串等操作。如有任何疑问请在评论区留言。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫之urllib库常用方法用法总结大全 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python图片合成的示例

    针对python图片合成的示例,以下是我总结的完整攻略。 1. 安装必要的python库 在进行图片合成前,需要安装pillow库来操作图片。可通过以下命令进行安装: pip install pillow 2. 图片的操作 打开图片 可以通过使用PIL库的Image模块,使用open()函数打开指定路径上的图片文件,具体示例代码如下: from PIL im…

    python 2023年6月6日
    00
  • python将list转为matrix的方法

    Python将List转为Matrix的方法 在Python中,列表(List)是一种常用的数据结构,它可以用来存储一组有序的数据。在某些情况下,我们需要将列表转换为矩阵(Matrix)来进行一些计算或操作。本文将详细介绍Python将List转为Matrix的方法。 方法一:使用numpy库 numpy是Python中常用的科学计算库,它提供了丰富的数组操…

    python 2023年5月13日
    00
  • Python组合数据类型详解

    Python组合数据类型详解 Python是一种非常灵活的编程语言,支持多种数据类型,其中包括组合数据类型,这些类型能够将多个数据结构组合成一个整体。在Python中,组合数据类型主要包括列表、元组和字典三种类型。 列表 列表是Python中最常用的组合类型,可以存储一组任意类型的值,包括数字、字符串和其他列表等。创建列表时,将要存储的值以逗号分隔,并用方括…

    python 2023年5月13日
    00
  • 如何在Python上逐行填充空矩阵?

    【问题标题】:How to fill empty matrix row by row on Python?如何在Python上逐行填充空矩阵? 【发布时间】:2023-04-04 23:55:01 【问题描述】: 我需要创建一个空矩阵,用列表逐行填充它。列表中的每一项都必须是数组中的一项。 list_1[“1″,”2”] list_2[“3″,”4”] ad…

    Python开发 2023年4月6日
    00
  • python网页请求urllib2模块简单封装代码

    在Python中,我们可以使用urllib2模块发送HTTP请求。为了方便重复使用,我们可以将urllib2模块封装成通用的模块。以下是一个详细的攻略,包含了封装urllib2模块的步骤和示例。 1. 导入urllib2模块 在开始之前,我们需要导入urllib2模块。可以使用以下代码导入urllib2模块: import urllib2 2. 封装urll…

    python 2023年5月15日
    00
  • python解析含有重复key的json方法

    当我们使用 Python 的 json 模块解析一个包含重复键值的 JSON 数据时,由于字典不能包含相同的键,会抛出异常。为了正确解析含有重复键的 JSON 数据,我们需要使用一些额外的 Python 包,或者自定义解析方法。 以下是一些处理重复键的 JSON 数据方法: 使用Python包 ijson 进行重复键的JSON解析 ijson 是一个高效的 …

    python 2023年6月3日
    00
  • python tkinter之顶层菜单、弹出菜单实例

    Python Tkinter 是 Python 的标准 GUI 库,其中的顶层菜单和弹出菜单是开发 GUI 应用程序的重要组成部分。本文将详细讲解 Python tkinter 中的顶层菜单和弹出菜单实例,同时提供两个示例,以便更好地理解。 1. 顶层菜单: 1.1 创建顶层菜单: 在 Python tkinter 中,可以通过菜单栏添加顶层菜单。创建菜单栏…

    python 2023年6月13日
    00
  • Python3合并两个有序数组代码实例

    Python3合并两个有序数组代码实例 在 Python3 中,将两个有序数组合并成一个有序数组是一个常见问题。本文将提供两种代码实现方法,以及示例说明。 方法1:使用双指针 双指针方法是将两个数组从头部开始依次比较大小,将较小的数放入一个新数组中。 实现步骤如下: 初始化两个指针 i 和 j,分别指向两个数组的第一个元素 新建一个空数组 res,用于存储合…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部