hello,小伙伴们!今天我们来学习urllib库的基本使用以及下载的相关操作.
一、urllib的基本使用
1、Python爬虫中使用urllib库可以实现网页的访问和数据的抓取。下面是一个基本的使用示例,包括了如何使用urllib访问网页和获取网页内容的代码:
from urllib import request
url = '<https://www.example.com>'
response = request.urlopen(url)
html = response.read().decode('utf-8')
print(html)
上面的代码首先导入了**urllib.request
模块,然后指定了要访问的网页URL,并使用urlopen()
函数打开这个URL。接着使用read()
方法读取网页内容,并使用decode('utf-8')
**方法将内容解码为字符串。最后打印出网页的HTML内容。
示例:获得百度的网页内容代码
结果展示:
2. 读取响应内容
-
read()
: 读取所有响应内容的字节形式。 -
readline()
: 读取一行响应内容的字节形式。 -
readlines()
: 一行一行读取响应内容,返回一个包含所有行的列表。
3. 其他方法
getcode()
: 获取响应的状态码。geturl()
: 获取响应的URL。getheaders()
: 获取响应的Headers信息。
import urllib.request
# (1)定义一个url就是你所要访问的地址
url='<http://www.baidu.com>'
# (2)模拟浏览器向服务器发送信息
response = urllib.request.urlopen(url)
# 读取所有响应内容的字节形式。
print(response.read(6))
# 读取一行
print(response.readline())
二、使用urlretrieve()
下载文件
**urlretrieve()
函数可以用来下载文件,比如图片、视频等。下面是一个简单的示例,演示如何使用urlretrieve()
**下载文件:
(1)下载图片
from urllib import request
url = '<https://www.example.com/image.jpg>'
filename, headers = request.urlretrieve(url, 'image.jpg')
print('Downloaded:', filename)
在这个示例中,urlretrieve()
函数会下载url
指定的文件,并将其保存为image.jpg
。**filename
变量将包含保存的文件路径,headers
**变量将包含响应的头部信息。
示例:
import urllib.request
url_img='<https://t7.baidu.com/it/u=4162611394,4275913936&fm=193&f=GIF>'
urllib.request.urlretrieve(url_img,filename='dog.jpg')
(2)下载视频
要使用**urlretrieve()
**下载视频,只需将视频的URL传递给函数即可。下面是一个示例,演示如何下载视频文件:
from urllib import request
url = '<https://www.example.com/video.mp4>'
filename, headers = request.urlretrieve(url, 'video.mp4')
print('Downloaded:', filename)
在这个示例中,urlretrieve()
函数会下载url
指定的视频文件,并将其保存为video.mp4
。**filename
变量将包含保存的文件路径,headers
**变量将包含响应的头部信息。
(3)下载百度首页源代码
import urllib.request
url='<http://www.baidu.com>'
urllib.request.urlretrieve(url,'baidu.html')
页面可以正常打开
总结
urllib.request.urlopen() 模拟浏览器向服务器发送请求
response 服务器返回的数据
response的数据类型是HttpResponse
字节‐‐>字符串
解码decode
字符串‐‐>字节
编码encode
read() 字节形式读取二进制 扩展:rede(5)返回前几个字节
readline() 读取一行
readlines() 一行一行读取 直至结束
getcode() 获取状态码
geturl() 获取url
getheaders() 获取headers
urllib.request.urlretrieve()
请求网页
请求图片
请求视频
学习 urllib 库的基本使用和下载操作可以帮助我们实现对 URL 的各种操作,包括发送请求、处理响应、构建 URL 等。通过 urllib.request
模块,我们可以发送 HTTP 请求并获取响应,还可以构建请求对象、设置 Headers 等。总的来说,学习 urllib 库可以让我们更加灵活地处理 URL 相关的操作,提高我们的编程效率。