1.—urlli库
urllib 库是 python 中一个最基本的网络请求库。可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据。
1.1—urlopen函数
在 Python3 的 urllib 库中,所有和网络请求相关的方法,都被集中到 urllib.request 模块下面了,先来看看 urlopen 函数基本的使用 `
from urllib import request
# 所访问的目标地址(百度)
url = "http://www.baidu.com"
# 利用 urlopen 函数进行网络请求
resp = request.urlopen(url)
# 利用 read() 读取网页内容
html = resp.read().decode("utf-8")
print(html)
运行结果如下
实际上,使用浏览器访问百度,右键查看源代码,你会发现,跟我们刚才打印出来的数据是一模一样的,也就是说,上面几行代码算是帮我们把百度的首页的全部代码爬下来。
1.2—urlretrieve函数
这个函数可以方便的将网页上的的一个文件保存到本地。
from urllib import request
# 所访问的目标地址(百度)
url = "http://www.baidu.com"
request.urlretrieve(url,"baidu.html")
代码运行之后,就会在当前目录下创建一个 baidu.html 的文件,然后打开它,就可以直接访问百度的首页了。
2—parse库
parse 主要是用来解析URL(统一资源定位器)的。
2.1—urlencode函数
用浏览器发送请求的时候,如果 url 中包含了中文或者其他特殊字符,那么浏览器会自动的给我们进行编码。而如果使用代码发送请求,那么必须进行手动编码,这时候就应该使用 urlencode 函数来实现。urlencode 可以把字典数据装换为 URL 编码的数据。如:
from urllib import parse
# 数据
data = {
"name":"爬虫基础",
"greet":"hello world",
"age":22
}
#进行编码
qs = parse.urlencode(data)
print(qs)
运行结果如下:
2.2—parse_qs函数
可以将经过编码后的 url 参数进行解码。如:
from urllib import parse
# 数据
data = {
"name":"爬虫基础",
"greet":"hello world",
"age":22
}
#进行编码
qs = parse.urlencode(data)
print("编码之后的结果为======",qs)
#进行解码
qss = parse.parse_qs(qs)
print("解码之后的结果为======",qss)
运行结果如下:
今天的内容就分析这里,感谢大家的学习,再见。欢迎关注本博客,接下来博主会持续更新关于python爬虫的知识,希望与大家一起进步,一起成长,谢谢大家。