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技术站