【python】爬取单张图片并下载

本文介绍如何使用Python编写爬虫程序下载网络上的图片,并将其保存到本地。通过定义两个函数,一个用于获取图片内容,另一个用于保存图片,实现了图片的自动下载与保存。示例代码展示了从指定URL抓取图片并保存为JPG格式的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Python爬取一张图片并且保存下来
首先找一张图片
要下载的图片

1. 获取图片

def downlaodPicture(url):
    response = requests.get(url)
    if response.status_code == 200:
        return response.content

2. 保存图片

def savePicture(content):
    path = os.getcwd() + '/' + md5(content).hexdigest() + '.jpg'
    if not os.path.exists(path):
        with open(path, 'wb') as f:
            f.write(content)
            f.close()

3. 调用程序

if __name__ == '__main__':
    url = 'http://img0.dili360.com/pic/2018/09/26/5bab38dfd80333y53304453_t.jpg@!rw9'
    content = downlaodPicture(url)
    savePicture(content)
Python通过一些库如BeautifulSoup、requests和PIL(Python Imaging Library,现在推荐使用其分支Pillow)可以方便地用于网页图片爬取。这里我们分两个部分讲解:单张照片的爬取和多张照片的批量爬取。 1. **单张照片爬取**: - 首先,使用`requests.get()`获取目标网页的HTML内容。 - 然后,解析HTML结构找到图片链接。这通常需要对BeautifulSoup的`.find_all()`或CSS选择器等方法熟悉应用。 - 使用`requests.get(url)`下载图片,其中url是找到的图片链接。 - 最后,保存图片到本地,例如用Pillow的`Image.open()`打开然后调用`save()`方法。 ```python import requests from bs4 import BeautifulSoup from PIL import Image # 获取网页URL url = 'http://example.com/image.jpg' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') # 解析下载图片 img_url = soup.find('img')['src'] # 假设图片在img标签内 image_data = requests.get(img_url).content image = Image.open(BytesIO(image_data)) image.save('downloaded_image.jpg') ``` 2. **多张照片爬取**: - 如果要批量抓取整个相册或者页面上所有图片,可以遍历每一页或查找特定的图片容器,如`<div class="gallery">`等。 - 可能还需要处理翻页的情况,比如检查是否存在“下一页”按钮递归请求。 ```python def scrape_images(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') gallery = soup.find('.gallery') # 假设相册在class为gallery的元素里 for img in gallery.find_all('img'): img_url = img['src'] image_data = requests.get(img_url).content save_image(img_url, 'images/' + img_url.split('/')[-1]) # 递归抓取更多页面 if 'next_page_link' in soup.find('a', {'rel': 'next'}): # 检查是否有下一页 next_page_url = soup.find('a', {'rel': 'next'})['href'] scrape_images(next_page_url) # 函数 save_image() 负责实际保存图片 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值