赞
踩
引言:
在本文中,我们将学习如何使用Python创建一个简单的图片爬虫。我们将利用
requests
库来发送HTTP请求,BeautifulSoup
库来解析HTML页面,以及os
和shutil
库来下载和保存图片。通过这个教程,你将学会如何爬取网页上的图片并保存到本地。
目录
在开始之前,请确保你已经安装了Python,并且安装了以下库:
requests
:用于发送HTTP请求beautifulsoup4
:用于解析HTML页面
pip install requests beautifulsoup4
- import os
- import requests
- from bs4 import BeautifulSoup
- from urllib.parse import urljoin
- from urllib.request import urlretrieve
-
- def download_images(url, save_dir):
- """
- 下载指定网页上的所有图片并保存到本地文件夹
-
- :param url: 目标网页的URL
- :param save_dir: 图片保存的目录
- """
- # 创建保存图片的目录
- if not os.path.exists(save_dir):
- os.makedirs(save_dir)
-
- # 发送HTTP请求
- response = requests.get(url)
- response.raise_for_status() # 如果请求失败,抛出异常
-
- # 使用BeautifulSoup解析页面
- soup = BeautifulSoup(response.text, 'html.parser')
-
- # 查找所有的图片链接
- image_links = soup.find_all('img')
-
- # 下载并保存图片
- for img in image_links:
- img_url = img.get('src')
-
- # 如果图片链接是相对路径,则将其转换为绝对路径
- if not img_url.startswith(('http://', 'https://')):
- img_url = urljoin(url, img_url)
-
- # 下载图片
- img_name = os.path.join(save_dir, img_url.split('/')[-1])
- urlretrieve(img_url, img_name)
-
- print(f"Downloaded: {img_name}")
-
- # 使用示例
- url = "https://example.com" # 替换为你要爬取的网页的URL
- save_dir = "images" # 图片保存的目录
- download_images(url, save_dir)
- 导入库:首先,我们导入了所需的库,包括
os
、requests
、BeautifulSoup
、urllib.parse
和urllib.request
。- 定义函数:我们定义了一个名为
download_images
的函数,它接受两个参数:url
(目标网页的URL)和save_dir
(图片保存的目录)。- 创建保存目录:如果指定的保存目录不存在,我们将创建它。
- 发送HTTP请求:使用
requests.get
方法发送HTTP请求,并使用response.raise_for_status
检查请求是否成功。- 解析页面:使用
BeautifulSoup
解析HTML页面,并查找所有的<img>
标签,以获取图片链接。- 下载并保存图片:遍历每个图片链接,将其转换为绝对路径(如果需要),并使用
urlretrieve
方法下载图片然后,将图片保存到指定的目录,并打印出下载的文件名。- 使用示例:最后,我们提供了一个使用示例,包括目标网页的URL和图片保存的目录。
四、注意事项
robots.txt
文件和使用条款,并尊重他人的版权和隐私。通过本文的学习,你已经掌握了如何使用Python创建一个简单的图片爬虫。你可以根据自己的需求进一步扩展和优化这个爬虫。记得在使用爬虫时要遵守相关规定和法律法规,尊重他人的权益。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。