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

yizhihongxing

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 可视化matplotlib模块基础知识

    下面是关于Python可视化matplotlib模块的基础知识的介绍以及两条示例说明。 Python可视化matplotlib模块基础知识 matplotlib是Python中最常用的数据可视化库之一,它提供了绘制各种类型的图表的函数和工具,包括线图、柱状图、散点图、饼图、3D图等。 安装matplotlib 你可以使用pip命令进行安装,在命令行界面输入以…

    python 2023年6月2日
    00
  • numpy 进行数组拼接,分别在行和列上合并的实例

    当使用numpy进行数组操作时,有时需要将两个或多个数组拼接成一个大数组。numpy提供了多种方法进行数组拼接,包括在行和列上合并,这些操作分别通过 numpy.concatenate() 和 numpy.vstack()、numpy.hstack() 完成。 numpy.concatenate() numpy.concatenate()是将多个数组按照指定…

    python 2023年6月5日
    00
  • Python中的集合一起来学习一下

    Python中的集合一起来学习一下 什么是集合? 集合是 Python 中的一种无序且元素唯一的数据类型。无序意味着元素存储在集合中的顺序与添加元素的顺序不一定相同。元素唯一意味着集合中的元素不能重复。Python 中的集合类类似于数学中的集合,可以进行交集、并集、差集等基本操作。 如何创建集合? Python 中的集合可以使用花括号 {} 或 set() …

    python 2023年5月14日
    00
  • python-httpx的使用及说明

    Python-httpx的使用及说明 简介 httpx 是一个 Python 的异步 HTTP 客户端,提供了更好用的 API、更好的异步支持、更好的性能,并且还提供了更接近现代 Web 特点的新特性,比如:HTTP/2、ASGI 和 WebSocket 支持。 安装 可以使用 pip 包管理器来安装 httpx,具体命令如下: pip install ht…

    python 2023年6月3日
    00
  • windows 10 设定计划任务自动执行 python 脚本的方法

    下面我来详细讲解在Windows 10中如何设定计划任务自动执行Python脚本的方法。 1. 准备工作 首先要确认电脑中是否安装了Python环境,在命令行输入python,如果能够打开Python交互界面,则表明已经安装了Python环境。 其次,需要编写好要执行的Python脚本,并记下该脚本的绝对路径和文件名。 最后,在开始之前确保自己的Window…

    python 2023年5月19日
    00
  • 如何在Python的NumPy中对数组进行标准化

    标准化是指将数值型数据转换为均值为0,标准差为1的过程,常用于机器学习和数据分析中。在Python的NumPy中,可以通过以下几个步骤对数组进行标准化: 计算数组的均值和标准差 import numpy as np # 创建一个数组 arr = np.array([[1, 2], [3, 4], [5, 6]]) # 计算均值和标准差 mean = np.m…

    python-answer 2023年3月25日
    00
  • 如何在NumPy中为行和列设置坐标轴

    在NumPy中,可以使用np.meshgrid函数为数组设置坐标轴。 首先,我们先导入NumPy库: import numpy as np 为行和列设置坐标轴 np.meshgrid函数可以将两个轴的坐标用于生成一个网格。该函数输入两个一维数组,并返回两个二维数组,其中一个数组用于行,另一个数组用于列。示例代码如下: x = np.array([1, 2, …

    python-answer 2023年3月25日
    00
  • Apache服务器上的Python cgi

    【问题标题】:Python cgi on apache serverApache服务器上的Python cgi 【发布时间】:2023-04-05 09:10:01 【问题描述】: 我是 python cgi 编程的新手。我已经在 linux mint 上安装了 apache 2.2 服务器,并且在 var/www 文件夹中有我的 html 表单,该文件夹正…

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