🍦 🔧 Python爬虫入门:从零开始写一个图片下载器
爬虫是Python最热门的应用场景之一,学会它可以帮你快速获取互联网上的各种数据。今天我们就来从零开始,一步步教你写一个能自动下载网页图片的爬虫脚本,适合Python新手入门。
📦 1. 环境准备
首先,我们需要安装必要的Python库:
pip install requests beautifulsoup4
requests:用于发送HTTP请求,获取网页内容beautifulsoup4:用于解析HTML,提取我们需要的信息
🧩 2. 核心代码实现
以下是完整的图片下载器代码,包含详细注释:
import requests
from bs4 import BeautifulSoup
import os
def download_images(url, save_path='./images'):
# 创建保存图片的文件夹
if not os.path.exists(save_path):
os.makedirs(save_path)
# 发送HTTP请求,获取网页内容
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
# 解析HTML,提取所有图片链接
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')
# 下载每张图片
for index, img in enumerate(img_tags):
img_url = img.get('src')
if not img_url:
continue
# 处理相对链接
if not img_url.startswith('http'):
img_url = url + img_url
try:
# 下载图片
img_response = requests.get(img_url, headers=headers)
if img_response.status_code == 200:
# 保存图片
img_name = f'image_{index+1}.jpg'
with open(os.path.join(save_path, img_name), 'wb') as f:
f.write(img_response.content)
print(f'已下载:{img_name}')
except Exception as e:
print(f'下载失败:{img_url},错误信息:{e}')
if __name__ == '__main__':
target_url = 'https://example.com/gallery' # 替换为你要爬取的网页地址
download_images(target_url)
📝 3. 代码解析
- 环境准备:导入需要的库,定义保存图片的路径。
- 发送请求:使用
requests库发送HTTP请求,获取目标网页的HTML内容。 - 解析HTML:使用
BeautifulSoup解析HTML,找到所有``标签。 - 处理链接:提取图片的
src属性,处理相对链接,转换为完整的URL。 - 下载图片:发送请求下载图片,并保存到本地文件夹。
⚙️ 4. 运行说明
- 将代码保存为
image_downloader.py。 - 修改
target_url为你想要爬取的网页地址。 - 在终端中运行:
python image_downloader.py。 - 图片会自动保存到当前目录下的
images文件夹中。
⚠️ 5. 注意事项
- 遵守网站规则:在爬取前,请先查看网站的
robots.txt文件,确保你的行为符合网站的使用条款。 - 设置请求头:添加
User-Agent可以避免被网站识别为爬虫而拒绝访问。 - 异常处理:网络请求可能会失败,代码中加入了异常处理,确保程序不会崩溃。
- 频率控制:不要过于频繁地发送请求,避免给目标网站造成过大压力。
💡 写在最后
这个图片下载器是一个非常基础的爬虫脚本,你可以在此基础上进行扩展,比如增加多线程下载、支持更多图片格式、添加进度条等。爬虫的世界非常广阔,希望这个例子能帮助你迈出第一步!
收藏
文章目录
文章作者:威锋
文章标题:🔧 Python爬虫入门:从零开始写一个图片下载器
文章链接:https://doc.vfxz.cn/4.html
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自威锋 !
文章标题:🔧 Python爬虫入门:从零开始写一个图片下载器
文章链接:https://doc.vfxz.cn/4.html
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自威锋 !
设备上扫码阅读
阅读:232
发布时间: