python抓取网页图片示例(python爬虫)

下面是对“python抓取网页图片示例(python爬虫)”的完整攻略。

一、前提准备

在使用Python爬取网页图片之前,我们需要先做好以下准备工作:

  1. 安装Python环境:从Python官网下载安装包,然后按照安装向导进行安装即可。

  2. 安装第三方库requests:在终端或命令行窗口输入 pip install requests 命令即可安装。

  3. 学习HTTP协议知识:由于爬虫的本质就是模拟浏览器向服务器发送请求,因此需要了解HTTP协议的基本知识。

二、Python爬虫抓取网页图片的过程

1. 确定需要爬取的目标URL

通过Chrome/Firefox等浏览器打开目标网页,在页面上找到需要下载的图片,鼠标右击图片,然后选择“复制图片地址”,将图片的URL地址复制到剪贴板中。

例如,我们要下载网站 https://www.example.com 上的一张图片,其URL地址为 https://www.example.com/images/example.jpg 。

2. 发送HTTP GET请求

在Python中使用requests库发送HTTP GET请求,并获取目标URL对应的网页内容。可以使用下面的代码实现:

import requests

url = 'https://www.example.com/images/example.jpg'
response = requests.get(url)

3. 解析图片URL地址

从下载的网页内容中解析出图片的URL地址,例如:

import re

img_url_pattern = re.compile(r'http[s]?:\/\/[^\s]*\.(jpg|jpeg|png|gif|bmp)')
img_url = img_url_pattern.findall(response.text)[0]

以上代码使用了正则表达式匹配图片URL地址,可以匹配各种类型的图片扩展名。

4. 下载图片

使用requests库下载图片,并保存到本地文件中,例如:

img_response = requests.get(img_url)
with open('example.jpg', 'wb') as f:
    f.write(img_response.content)

以上代码将下载的图片保存到example.jpg文件中。

三、示例说明

示例一:爬取百度首页的LOGO图片

import requests
import re

url = 'https://www.baidu.com/'
response = requests.get(url)

img_url_pattern = re.compile(r'".*?\/logo\/.*?\.(jpg|jpeg|png|gif|bmp)"')
img_url = 'https:' + img_url_pattern.findall(response.text)[0]

img_response = requests.get(img_url)
with open('baidu_logo.jpg', 'wb') as f:
    f.write(img_response.content)

以上代码首先向百度首页发送HTTP GET请求,然后从返回的响应中解析出LOGO图片的URL地址,最后下载图片并保存到本地文件baidu_logo.jpg中。

示例二:爬取壁纸网站的图片

import requests
import re

url = 'https://wallhaven.cc/search?q=nature&categories=100&purity=100&sorting=random&order=desc'
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)
img_url_pattern = re.compile(r'http[s]?:\/\/[^\s]*\.(jpg|jpeg|png|gif|bmp)')
img_urls = img_url_pattern.findall(response.text)

for i, img_url in enumerate(img_urls):
    img_response = requests.get(img_url)
    with open(f'nature_{i}.jpg', 'wb') as f:
        f.write(img_response.content)

以上代码向壁纸网站发送HTTP GET请求,并从返回的响应中解析出所有符合要求的图片URL地址,然后循环下载图片并保存到本地文件中,文件名格式为“nature_序号.jpg”,其中序号为当前图片在列表中的索引。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python抓取网页图片示例(python爬虫) - Python技术站

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

相关文章

  • 利用python实现可视化大屏

    利用Python实现可视化大屏的攻略 1、选择可视化库 Python中有很多可视化库可以用来制作可视化大屏,其中比较受欢迎的包括Matplotlib、Seaborn、Plotly等。你可以根据自己的需求选择适合的可视化库。以下是三个库的简介: Matplotlib:以Python为基础的绘图库,提供了各种绘图工具,可快速制作出静态图像。 Seaborn:是基…

    python 2023年5月19日
    00
  • Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 1. os模块 1.1 获取文件夹中所有文件 使用os模块下的listdir方法可以获取文件夹中所有文件的名称。 import os folder_path = ‘/path/to/folder’ file_names = os.listdir(folder_path) for file_name in fi…

    python 2023年5月30日
    00
  • Python推导式数据处理方式

    Python推导式是一种简便高效的数据处理方式,通常用于生成新的序列或字典,以及对现有序列或字典的筛选、变换等操作。本文将为您介绍Python推导式数据处理的完整攻略。 一、Python推导式的基本语法 Python推导式(也称为列表推导式或字典推导式)的基本语法如下: 列表推导式: [expr for var in iterable if conditio…

    python 2023年5月14日
    00
  • Django正则URL匹配实现流程解析

    下面是详细的攻略: Django正则URL匹配实现流程解析 在Django中,我们可以使用正则表达式来匹配URL。本文将介绍Django正则URL匹配的实现流程,并提供两个示例说明。 URL匹配实现流程 在Django中,URL匹配的实现流程如下: 用户请求一个URL。 Django将请求的URL与项目中的URL模式进行匹配。 如果匹配成功,Django将调…

    python 2023年5月14日
    00
  • 如何比较两个NumPy数组

    要比较两个NumPy数组,可以使用NumPy中的比较函数,这些函数返回一个布尔数组,该数组表示每个元素是否满足比较条件。下面是一些常用的比较函数: numpy.array_equal(x, y) : 如果两个数组x和y的形状和元素的值都相等,则返回True,否则返回False。 numpy.allclose(a, b, rtol=1e-05, atol=1e…

    python-answer 2023年3月25日
    00
  • python 字典 setdefault()和get()方法比较详解

    来和您详细讲解一下关于Python字典中setdefault()和get()方法的比较。 什么是字典 Python中的字典是一种可变容器模型,它存储的是键值对。字典的键必须是唯一的且不可更改,而值则可以是任何类型的对象。字典的常用操作包括增加/删除元素,查找元素等。 get()方法用法 字典类型的get()方法是获取指定键的值,如果指定键不存在,则返回默认值…

    python 2023年5月13日
    00
  • python使用pyodbc连接sqlserver

    下面是使用pyodbc连接SQL Server的完整攻略。 安装pyodbc库 首先需要安装pyodbc库,可以使用pip命令进行安装: pip install pyodbc 准备工作 连接SQL Server需要以下信息: 数据库的地址,格式为server_name\instance_name或者server_name。 数据库的名称。 登录用户名和密码。…

    python 2023年5月20日
    00
  • python里将list中元素依次向前移动一位

    以下是“Python里将list中元素依次向前移动一位”的完整攻略。 1. Python list简介 在Python中,list是一种常用的数据结构,可以存储任意的数据类型,包括数字、字符串、列表等。list是一种可变的序列,可以进行添加、删除、修改等操作。 2. Python list元素向前移动位 在Python中,我们使用切片和列表解析来将list中…

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