其他
Python爬虫教程04:下载《所有页》古装美女图片
Python,速成心法
敲代码,查资料,问度娘
练习,探索,总结,优化
#使用到的小知识点总结:#
▶1.使用requests模块发送请求和bs4模块中html.parser解析数据。
▶2.os创建文件保存数据,split 按/ 分割命名。
▶3.使用range函数,获取所有页数。当然总页数可以网页源码中直接获取,这个留给大家自己思考一下,如何实现?
▶4.列表的生成与for循环的调用
采集完成之后的本地图片
↓ 源码如下 ↓
import requests
from bs4 import BeautifulSoup
import os
# 1.新建一个文件夹,用于存放下载的图片或资源
os.makedirs('测试图片',exist_ok=True)
# 2.定义函数的功能:01获取网页图片
def get_image_url(url):
#打包请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url, headers=headers)
#使用bs4,解析HTML数据
soup = BeautifulSoup(response.text, 'html.parser')
images = soup.find_all('img')
image_urls = [] # 清空初始列表
for image in images:
image_url = image.get('src') # 取src对应的属性值
image_urls.append(image_url) # 得到的数据添加到列表
return image_urls
# 3.保存图片数据
def save_images(url2):
res = requests.get(url2)
#以网址的结尾,按斜杠分割命名图片名
file_name=url2.split('/')[-1]
#print(file_name)
with open('测试图片/' + file_name +'.jpg', 'wb') as f:
f.write(res.content)
f.close()
if __name__ == '__main__': #运行主函数
# 找到网址的规律,range循环页数即可下载每一页数据
# 下方1-4 下载的是前3页的数据,可自调节
for page in range(1, 4):
url =f'https://www.hexuexiao.cn/meinv/guzhuang/list-{page}.html'
print(url)
print(f'正在下载,第{page}页'.center(100, "-"))
image_urls = get_image_url(url)
#返回的是图片地址的列表
#print(image_urls)
for image_url in image_urls:
#print(image_url.split('/')[-1])
save_images(image_url)
print('图片数据已经下载完成,已经全部,保存在测试图片里面了!!')
完毕!!感谢您的收看
------------往期更多精彩内容------------
----------------爬虫系列---------------
---------------Python源码集合---------------
Python源代码分享:05使用turtle模块绘制一个彩色螺旋图案