这篇文章将从以下几个方面详细讲解如何使用Python爬取图片并保存到本地。
一、环境准备
在使用Python进行爬虫编程之前,我们需要先安装requests库和beautifulsoup4库。其中,requests库用来发送HTTP请求获取页面数据,beautifulsoup4库用来解析HTML页面数据。
pip install requests
pip install beautifulsoup4
二、获取图片链接
在爬虫程序中,首先需要做的就是获取图片链接。获取图片链接的方法有很多种,这里我们以解析HTML页面为例来获取图片链接。
下面是一个获取图片链接的例子:
import requests
from bs4 import BeautifulSoup
url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')
img_urls = []
for img in img_tags:
img_url = img.get('src')
if img_url:
img_urls.append(img_url)
上述代码中,我们首先使用requests库发送HTTP请求获取页面数据,然后使用beautifulsoup4库解析HTML页面数据。在获取图片标签后,我们通过遍历所有图片标签来获取其对应的图片链接。最后将所有图片链接保存在img_urls列表中。
三、下载图片
获取到图片链接之后,接下来我们需要将其下载到本地。下载图片的方法也有多种,这里我们以使用requests库下载图片为例。
下面是一个下载图片的例子:
import requests
for img_url in img_urls:
response = requests.get(img_url, stream=True)
if response.status_code == 200:
with open('image.jpg', 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)
上述代码中,我们遍历所有图片链接并使用requests库发送HTTP请求下载对应图片。我们使用response.iter_content()方法来批量下载图片。最后将对应图片保存在本地文件夹中。
四、完整代码
下面是完整的Python爬取图片保存到本地的代码示例:
import requests
from bs4 import BeautifulSoup
def get_img_urls(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')
img_urls = []
for img in img_tags:
img_url = img.get('src')
if img_url:
img_urls.append(img_url)
return img_urls
def download_img(img_url):
response = requests.get(img_url, stream=True)
if response.status_code == 200:
with open('image.jpg', 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)
if __name__ == '__main__':
url = 'https://www.example.com'
img_urls = get_img_urls(url)
for img_url in img_urls:
download_img(img_url)