Python自动爬取图片并保存实例代码

Python自动爬取图片并保存实例代码

本攻略将介绍如何使用Python自动爬取图片并保存到本地。我们将使用Python的requests库和BeautifulSoup库来获取和解析网页内容,使用os库和urllib库来创建和保存图片文件。

获取图片链接

我们可以使用Python的requests库和BeautifulSoup库来获取图片链接。以下是一个示例代码,用于获取百度图片搜索结果页面的图片链接:

import requests
from bs4 import BeautifulSoup

url = 'https://image.baidu.com/search/index?tn=baiduimage&word=cat'
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)

soup = BeautifulSoup(response.text, 'html.parser')
imgs = soup.find_all('img', class_='main_img')

for img in imgs:
    print(img['src'])

在上面的代码中,我们使用requests库发送了一个HTTP请求,获取了百度图片搜索结果页面的内容。我们指定了请求的URL和请求头,使用get方法发送了请求,并使用text属性获取了响应内容。我们使用BeautifulSoup库对响应内容进行了解析,选择了所有class为'main_img'的img标签,并使用字典的方式获取了图片链接。我们遍历了所有的图片链接,并输出了它们的URL。

下载和保存图片

获取到图片链接后,我们需要将图片下载并保存到本地。以下是一个示例代码,用于下载和保存图片:

import requests
import os
import urllib

url = 'https://www.baidu.com/img/bd_logo1.png'
filename = os.path.basename(url)
urllib.request.urlretrieve(url, filename)

在上面的代码中,我们使用urllib库的urlretrieve方法下载了一张图片,并使用os库的basename方法获取了图片的文件名。我们将图片保存到了当前工作目录下。

示例1:自动爬取图片并保存到本地

以下是一个示例代码,用于自动爬取图片并保存到本地:

import requests
from bs4 import BeautifulSoup
import os
import urllib

url = 'https://image.baidu.com/search/index?tn=baiduimage&word=cat'
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)

soup = BeautifulSoup(response.text, 'html.parser')
imgs = soup.find_all('img', class_='main_img')

if not os.path.exists('images'):
    os.mkdir('images')

for img in imgs:
    url = img['src']
    filename = os.path.basename(url)
    filepath = os.path.join('images', filename)
    urllib.request.urlretrieve(url, filepath)

在上面的代码中,我们使用os库创建了一个名为'images'的文件夹,用于存储下载的图片。我们遍历了所有的图片链接,并使用urlretrieve方法将图片下载并保存到'images'文件夹中。

示例2:自动爬取多个页面的图片并保存到本地

以下是一个示例代码,用于自动爬取多个页面的图片并保存到本地:

import requests
from bs4 import BeautifulSoup
import os
import urllib

if not os.path.exists('images'):
    os.mkdir('images')

for i in range(1, 6):
    url = f'https://image.baidu.com/search/index?tn=baiduimage&word=cat&pn={i*30}'
    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)

    soup = BeautifulSoup(response.text, 'html.parser')
    imgs = soup.find_all('img', class_='main_img')

    for img in imgs:
        url = img['src']
        filename = os.path.basename(url)
        filepath = os.path.join('images', filename)
        urllib.request.urlretrieve(url, filepath)

在上面的代码中,我们使用了一个循环,自动爬取了5个页面的图片。我们使用os库创建了一个名为'images'的文件夹,用于存储下载的图片。我们遍历了所有的图片链接,并使用urlretrieve方法将图片下载并保存到'images'文件夹中。

总结

本攻略介绍了如何使用Python自动爬取图片并保存到本地。我们可以使用requests库和BeautifulSoup库来获取和解析网页内容,使用os库和urllib库来创建和保存图片文件。我们还提供了两个示例,分别用于自动爬取图片并保存到本地和自动爬取多个页面的图片并保存到本地。这些技巧可以帮助我们更好地获取和管理图片资源。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python自动爬取图片并保存实例代码 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • python实现三种随机请求头方式

    以下是关于“Python 实现三种随机请求头方式”的完整攻略: Python 实现三种随机请求头方式 在进行爬虫或接口测试时,为了避免被网站识别为机器人,我们需要使用随机请求头。Python 可以通过三种方式实现随机请求头,分别是使用 fake_useragent 库、使用 random 库和使用自定义函数。以下是 Python 实现三种随机请求头方式的详细…

    python 2023年5月15日
    00
  • Python property、setter、deleter

    面向对象封装特点之一就是通过实现好的方法来访问,限制对数据的不合理访问,把对象状态私有化,仅供类的内部进行操作 下方示例,Test方法的number属性类实例的时候传递1,number是一个公开属性,可以在外部任意修改、访问,没有对属性进行进行约束 class Test: def __init__(self,number) self.number = num…

    python 2023年4月18日
    00
  • pyqt和pyside开发图形化界面

    下面是关于PyQt和PySide开发图形化界面的完整攻略: 一、PyQt和PySide简介 PyQt和PySide均是Python语言下的GUI工具包,基于Qt开发,在图形绘制、布局和事件处理等方面提供了丰富的组件和API。PyQt使用Python语言和Qt库进行绑定,而PySide则由Qt官方社区推出,使用了与PyQt类似的绑定方式。 PyQt和PySid…

    python 2023年6月3日
    00
  • Python基础之语法错误和异常详解

    Python是一门解释型语言,语法非常简洁明了,常用于编写脚本和Web应用程序。但是在编写代码时,难免会出现一些错误,这些错误被称为“语法错误”和“异常”。本篇攻略详细讲解Python中的语法错误和异常,以及如何排查和处理这些错误和异常。 什么是语法错误 语法错误是指在编写Python代码时,由于语法不正确或有拼写错误等问题导致无法被解释器正确解释的错误。这…

    python 2023年5月13日
    00
  • Python爬虫包BeautifulSoup异常处理(二)

    标题:Python爬虫包BeautifulSoup异常处理(二) 本文主要介绍如何在使用Python爬虫包BeautifulSoup进行网页数据抓取时,处理可能出现的异常情况,保障程序的稳定性和运行效率。 为什么需要对BeautifulSoup异常进行处理 在进行Python爬虫任务时,我们可能遇到以下几种情况: 网络连接中断,无法访问目标网站或页面 目标网…

    python 2023年5月13日
    00
  • Matplotlib中文乱码的3种解决方案

    以下是Matplotlib中文乱码的3种解决方案的详细攻略。 问题描述 Matplotlib是Python中一个非常流行的数据可视化库,但是在使用过程中,可能会出现中文乱码的问题,这是因为Matplotlib默认使用的字体不支持中文字符。本文将介绍三种解决方案。 方案一:修改默认字体 在Matplotlib中,可以通过修改默认字体的方式解决中文乱码的问题。具…

    python 2023年5月20日
    00
  • python定义具名元组实例操作

    当我们需要创建一个类似结构体的数据类型时,Python中的namedtuple就是一个很好的选择。namedtuple允许我们定义一个有名字的元组(tuple),元组中的每个元素都有相应的名称和位置。本篇攻略将为大家详细介绍创建和操作Python中的namedtuple。 定义namedtuple 定义namedtuple的首要步骤是导入namedtuple…

    python 2023年5月14日
    00
  • 动态创建的类对于 Python 中的 gc 是否总是“无法访问”?

    【问题标题】:Are dynamically created classes always “unreachable” for gc in Python?动态创建的类对于 Python 中的 gc 是否总是“无法访问”? 【发布时间】:2023-04-01 03:20:01 【问题描述】: 我有一个关于 Python 垃圾收集的问题。在阅读了一些关于为什么人…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部