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爬了4400条淘宝商品数据,竟发现了这些“潜规则”

    使用Python爬取淘宝商品数据,需要进行以下步骤: 1. 确定需求 在开始编写爬虫代码之前,我们需要明确我们所需要爬取的内容以及需要的数据。在爬取淘宝商品数据时,可能需要考虑以下内容: 需要爬取的商品类别或关键词; 需要爬取的商品信息,例如商品标题、价格、销售量、店铺名称、店铺评分等; 需要爬取的商品图片等数据; 是否需要设置反爬虫措施等。 2. 分析网站…

    python 2023年6月6日
    00
  • django使用多个数据库实现

    一、说明:   在开发 Django 项目的时候,很多时候都是使用一个数据库,即 settings 中只有 default 数据库,但是有一些项目确实也需要使用多个数据库,这样的项目,在数据库配置和使用的时候,就比较麻烦一点。 二、Django使用多个数据库中settings中的DATABASES的设置   2.1 默认只是用一个数据库时 DATABASES…

    python 2023年4月22日
    00
  • 人工智能—Python实现线性回归

    人工智能 – Python实现线性回归 简介 线性回归是机器学习中最基础的算法之一,其目的是用一条直线(或者更高维的超平面)来拟合数据点,从而对数据进行预测。在本文中,我们将会使用Python实现线性回归,并通过示例说明如何使用该技术来进行数据预测。 算法原理 线性回归的核心思想是最小二乘法,即将每个数据点的误差平方之和最小化来拟合数据。具体来说,我们可以使…

    python 2023年6月5日
    00
  • Python排序算法实例代码

    下面就给您详细讲解“Python排序算法实例代码”的完整攻略: 一、排序算法简介 排序算法(sorting algorithm)是计算机程序中最基础的算法之一,它是指将一组无序的数据元素,按照某种规则进行排列的过程。 常见的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序等,它们的实现方式不同,但总体思路都是通过比较和交换元素位置来完成排序的。 …

    python 2023年5月31日
    00
  • Python爬虫之线程池的使用

    Python爬虫之线程池的使用 线程池简介 在爬虫过程中,网络请求是一个常见且耗时的操作,每个请求都需要等待服务器的响应,这会导致一些性能过低的爬虫速度非常慢。而多线程编程可以有效地提高爬虫的效率。线程池是一种多线程优化技术,它可以在爬取数据时并行执行多个任务,以节约时间和资源,提高爬虫效率。 线程池通过自动管理工作线程来节约线程创建和销毁的时间和资源。池中…

    python 2023年5月19日
    00
  • Python免登录实现域名解析的示例详解

    Python免登录实现域名解析的示例详解 在本文中,我们将介绍如何使用Python免登录实现域名解析。我们将使用dnspython库来解析域名,并使用requests库发送HTTP请求。 步骤1:安装必要的库 在使用Python免登录实现域名解析之前,我们需要先安装必要的库: pip install dnspython requests 在上面的示例中,我们…

    python 2023年5月15日
    00
  • 在dataframe两列日期相减并且得到具体的月数实例

    要在DataFrame两列日期相减并且得到具体的月数,可以使用 pandas 库中的 pd.to_datetime 函数和 dt 属性。 首先,使用 pd.to_datetime 将日期字符串转为 datetime 类型。然后,使用 dt 属性获取日期的年、月信息,并计算相差的月数。 示例一: 假设有一个 DataFrame,其中包含了两列日期,分别为 st…

    python 2023年6月2日
    00
  • Python3.9.0 a1安装pygame出错解决全过程(小结)

    Python3.9.0a1安装pygame出错解决全过程(小结) 在安装pygame时,有时会遇到Python3.9.0a1版本下的安装错误。本文将详细讲解如何解决这个问题。 解决方法 方法一:使用pip安装 在Python3.9.0a1版本下,我们可以使用pip装pygame。以下是使用pip安装pygame的步骤: 打开命提示符。 输入以下命令并运行: …

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部