urllib库的一些基本函数的使用

urllib 库

介绍:

  1. 是python自带的标准库,无需另外安装
  2. 可以模拟浏览器向指定的服务器发送请求并保存返回的数据

注意:

在 urllib 库中,所有与网络请求相关的函数都在 request 模块下

urlopen() 函数

第一行:使用函数 urlopen() 时需先导入 request 模块

第二行:创建一个远程url的类文件对象,它的返回值是http.client.HTTPResponse 对象。因为该对象是类文件对象,所以跟本地操作文件是类似的。具有的方法包含几个:read(size) \ readline() \ readlines() \ getcode()

第三行:输出百度的网页源代码

from urllib import request
res = request.urlopen('https://www.baidu.com')
print(res.read())

urlretrieve() 函数

第一行:使用函数 urlretrieve() 时需先导入 request 模块

第二行:下载百度的网页源代码并保存为 baidu.html 文件

from urllib import request
res = request.urlretrieve('https://www.baidu.com','baidu.html')

由此看出 urlretrieve() 函数的作用是下载并保存某个网页里的文件

urlencode() 函数

作用:把字典形式的数据转换为 url 编码格式

第一行:使用函数 urlencode() 时需先导入 parse 模块

第二行:赋值给变量 data 一个字典形式的数据

第三行:将变量 data 的数据转换为 url 编码格式

from urllib import parse
data = {'name':'张三','age':'32'}
res = parse.urlencode(data)
print(res)

quote() 函数

作用跟 urlencode() 函数是一样的,只不过 urlencode() 函数针对的对象是字典,而 quote() 函数针对的对象是字符串

from urllib import parse
word = 'hello world' 
res = parse.quote(word)
print(res)

parse_qs() 函数

有编码就会有解码,就是将url编码的数据转换为字典形式的数据

req = parse.parse_qs(res)
print(req)

urlparse() 函数 和 urlsplit() 函数

urlparse() 函数和 urlsplit() 函数的作用都是一样的,都是分割 url 的各个组成部分。唯一的区别就是经 urlparse() 函数分割后的内容中包含 params 属性,而 urlsplit() 函数没有包含

from urllib import parse
url = 'https://www.baidu.com '
res_parse = parse.urlparse(url)
print(res_parse)
res_split = parse.urlspilt(url)
print(res_split)

request 类

当请求时需要添加一些请求头的时候,就必须用到这个 request 类

from urllib import request
url = 'https://www.baidu.com'

headers = {'User-Agent':' Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'} #字典形式

res = request.Request(url,headers = headers) # 添加请求头
req = request.urlopen(res)
print(req.read())

学习资料来源:
CSDN学院《从零起步,系统掌握Python网络爬虫》课程

你可能感兴趣的:(python爬虫)