urllib库的使用

简介: 简单实用

urllib的使用

urllib包含四个基本的模块。request:这是最基本的HTTP请求模块,可以模拟请求的发送。error:异常处理模块。如果出现请求异常,那么我们可以捕获这些异常,然后进行重试,使程序不会意外终止。parse:提供一个工具模块,提供了许多url的处理方法。robotparser:来网站的robots.txt文件,然后判断哪些文件可以爬,哪些网站不可以。

发送请求

尝试爬取Python官网

import urllib.request
response=urllib.request.urlopen("https://www.python.org")
print(response.read().decode("utf-8"))

通过简单的几行代码便得到了Python官网的源代码,输出得到的响应类型

import urllib.request
response=urllib.request.urlopen("https://www.python.org")
print(response.read().decode("utf-8"))
print(type(response))

输出结果为在这里插入图片描述
这是一个HTTPResponse类型的对象。主要的属性有read,getheader,以及getheader方法。调用read方法时我们可以得到响应的网页内容,调用status属性可以获取到响应结果的状态码,调用getheaders方法可以输出响应头信息,调用getheader方法并传入server参数即可获取响应头中server的值,例如

import urllib.request
response=urllib.request.urlopen("https://www.python.org")
# print(response.read().decode("utf-8"))
print(response.getheaders())
print(response.getheader("Server"))

输出结果:
在这里插入图片描述
说明网站是用Nginx来搭建的。

给链接传递一些参数

data参数:添加参数时要将bytes方法将参数转化为字节流编码格式的内容,即是bytes类型。何为bytes类型?我们要知道Python的字符串类型是utf-8显示类型的序列,而bytes数据类型则是utf-8格式的二进制的不可变序列。进行一些测试:

import urllib.request
import urllib.parse
data=bytes(urllib.parse.urlencode({"name":"germy"}),encoding="utf-8")
response=urllib.request.urlopen("https://www.httpbin.org/post",data=data)
print(response.read().decode("utf-8"))

输出结果:
在这里插入图片描述
form中有我们传入的参数,意味着我们模拟表单提交。
timeout参数:用于设置超时时间,单位为秒,如果超出了我们设置的这个时间,没有得到响应就会抛出异常,如果不指定参数就会使用全局默认时间,这个参数支持HTTP、HTTPS、FTP请求。

data=bytes(urllib.parse.urlencode({"name":"germy"}),encoding="utf-8")
# response=urllib.request.urlopen("https://www.httpbin.org/post",data=data)
response=urllib.request.urlopen("https://www.httpbin.org/post",timeout=0.1)
print(response.read().decode("utf-8"))

输出会报错,原因是超时,

相关文章
|
9月前
|
JSON 安全 网络安全
Python 常用第三方库 urllib3使用
`urllib3`是线程安全的HTTP客户端库,支持连接池管理、SSL/TLS验证、HTTP/SOCKS代理。要安装它,使用`pip install urllib3`。发送HTTP请求涉及创建`PoolManager`实例并调用`request()`方法。HTTPResponse对象有status、headers和data属性。可以解码响应内容,处理JSON数据。`request()`方法接受`method`、`url`等参数,可定制请求头、查询字符串、表单数据或JSON数据,并设置超时时间。HTTPS请求默认校验证书,可通过`cert_reqs`参数禁用此功能。
|
9月前
|
安全 测试技术 API
urllib3库的介绍以及使用
`urllib3`是Python的HTTP库,支持HTTP/HTTPS,自动管理连接池,提供代理、证书配置,重定向处理等功能。其优势在于连接池管理和HTTPS支持。要安装,使用`pip install urllib3`。发起HTTP请求如`http.request('GET', 'http//example.com')`。处理响应包括状态码、头部和内容。高级功能包括连接池管理、超时和重试策略。注意线程安全、资源释放及错误处理。官方文档和相关文章可提供更多信息。
250 0
|
9月前
|
数据采集 API Python
Python 初步了解urllib库:网络请求的利器
Python 初步了解urllib库:网络请求的利器
122 0
|
数据采集 存储 机器人
【 ⑦】urllib库的基本使用
【 ⑦】urllib库的基本使用
128 0
|
编解码 Python
urllib库(中)
urllib库(中)
62 0
|
数据采集 XML 存储
urllib模块的使用
urllib模块的使用
70 0
|
前端开发 Python
urllib的一些使用案例
urllib的一些使用案例
167 0
|
数据采集 Python
爬虫第一次笔记 urllib的基本使用 urllib一个类型,六个方法 urllib下载 urllib请求对象的定制
爬虫第一次笔记 urllib的基本使用 urllib一个类型,六个方法 urllib下载 urllib请求对象的定制
135 0
爬虫第一次笔记 urllib的基本使用 urllib一个类型,六个方法 urllib下载 urllib请求对象的定制
|
数据采集 搜索推荐 Python
附:Python中urllib库的使用
函数是用于读取网页的内容,我们可以指定读取的长度。
附:Python中urllib库的使用
|
Python
Python:urllib2模块GET和POST请求
Python:urllib2模块GET和POST请求
376 0