目录
代码逻辑
详细操作步骤
导入相应的库
获取网络的源代码
提取图片的源地址
获取图片的二进制源码
保存图片
定义main函数调用get_html函数
使用for循环便利列表
执行main函数
运行效果
在主程序中,你可以调用上述函数来实现功能:
- 调用get_html函数获取指定网址的源代码。
- 将源代码传入parse_pic_url函数,获取图片的源地址列表。
- 遍历图片源地址列表,在每个地址上调用get_pic_content函数获取图片的二进制源码。
- 将二进制源码和图片文件名传入save_pic函数,保存图片到本地。
需要注意的是,程序中假设要保存的图片都是jpg格式,并将保存的路径设为"大熊猫/"下。如果你要使用该程序,请确保已经创建了一个名为"大熊猫"的文件夹,并提供正确的网址和头部信息。
如果你已经在代码中定义了main函数,可以取消注释这一行代码,并在该行代码之后调用main函数,以执行整个程序。
导入了requests、re和os库,用于发送网络请求、进行正则表达式匹配和进行文件操作。
定义get_html函数:该函数用于发送网络请求并返回网页的源代码。它接收两个参数,url表示要请求的网址,headers表示请求时的头部信息。函数发送GET请求,并设置编码为utf-8,如果请求成功则返回源代码,否则打印出错信息。
定义parse_pic_url函数:该函数用于从网页源代码中提取图片的源地址。它接收一个参数,html表示网页的源代码。函数使用re.findall函数和正则表达式来匹配这段源代码中的图片地址信息,并将匹配结果返回。
定义get_pic_content函数:该函数用于获取图片的二进制源码。它接收一个参数,url表示图片的地址。函数使用requests库发送GET请求获取图片的内容,并返回其二进制源码。
定义save_pic函数:该函数用于保存图片。它接收两个参数,content表示图片的二进制源码,pic_name表示要保存的图片文件名。函数使用with open语句打开一个文件,以二进制写入模式写入图片内容,并关闭文件。
-
调用get_html函数获取指定网址的源代码,并将返回结果赋值给变量html。
-
调用parse_pic_url函数,将html作为参数传入,提取出图片的源地址列表,并将返回结果赋值给变量result。
-
初始化变量pic_name为0。
那么url和headers内容怎么写?这里以爬取大熊猫图片为例,搜索后单击右键,再点击检查,出来下图,如果里面没有内容就刷新一下或把网页往下拉就会有了
按上图顺序点击,出现下图
-
使用for循环遍历result列表中的每个图片源地址。
-
在循环内部,首先调用get_pic_content函数,将item(图片源地址)作为参数传入,获取图片的二进制源码,并将返回结果赋值给变量pic_content。
-
调用save_pic函数,将pic_content和pic_name作为参数传入,保存图片到本地。
-
增加pic_name的值,用于标识不同的图片。
-
打印"正在保存第 x 张图片"的提示信息
如果尚未定义main函数,可以注释掉该行代码