Python爬虫实战:图片爬取与保存

Python爬虫在数据抓取和图片下载方面非常有用。下面,我将详细讲解如何使用Python的requests库来请求网页内容,并使用BeautifulSoup库来解析HTML页面,最后使用urllib.requestrequests库来下载并保存图片。

准备工作

首先,你需要安装requestsbeautifulsoup4库(如果你还没有安装的话)。你可以通过pip来安装它们:

示例:从网站爬取图片

假设我们想要从某个网页(比如一个图片分享网站)上爬取所有图片。以下是详细的步骤和代码。

1. 导入必要的库

pip install requests beautifulsoup4

2. 发送HTTP请求

使用requests库发送GET请求到目标网站。

import requests  
from bs4 import BeautifulSoup  
import os

3. 解析HTML

使用BeautifulSoup解析HTML内容,找到图片链接。

url = 'http://example.com/gallery'  # 示例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)  
response.raise_for_status()  # 如果响应状态码不是200,则抛出HTTPError异常


4. 下载并保存图片

遍历找到的图片链接,下载图片并保存到本地。

# 创建一个文件夹来保存图片  
if not os.path.exists('downloaded_images'):  
    os.makedirs('downloaded_images')  
  
for img in images:  
    img_url = img['src']  
    # 构造完整的图片URL(如果图片URL是相对路径)  
    if not img_url.startswith('http'):  
        img_url = urljoin(url, img_url)  
      
    # 使用requests下载图片  
    img_response = requests.get(img_url, stream=True)  
    img_response.raise_for_status()  
      
    # 获取图片文件名(这里简单地使用URL的最后一部分)  
    file_name = os.path.join('downloaded_images', img_url.split('/')[-1])  
      
    # 以二进制写模式打开文件  
    with open(file_name, 'wb') as file:  
        for chunk in img_response.iter_content(1024):  
            file.write(chunk)  
  
    print(f'Image saved as {file_name}')


注意点

  1. User-Agent:有些网站会检查请求的User-Agent头部来判断是否为爬虫,因此设置一个合理的User-Agent可能有助于绕过简单的反爬虫机制。
  2. 图片URL:确保你获取的URL是完整的(包括协议部分,如http://https://)。有些网站的图片链接可能是相对路径,这时你需要通过urljoin函数来构造完整的URL。
  3. 错误处理:在实际应用中,应该添加适当的错误处理机制,比如捕获网络请求异常、文件写入异常等。

最后小编也给大家分享一份Python学习压缩包,里面的内容都是适合零基础小白的笔记,不懂编程也能听懂、看懂。【如果需要的话戳这里

全套Python学习资料分享:

一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

四、入门学习视频全套
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

在这里插入图片描述

图片

五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

在这里插入图片描述

在这里插入图片描述

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值