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爬虫基础之lxml

    一、Python lxml的基本应用 1 <html> 2 <head> 3 <title> 4 The Dormouse’s story 5 </title> 6 </head> 7 <body> 8 <p class=”title”> 9 <b> 10 The…

    爬虫 2023年4月11日
    00
  • python读取Excel实例详解

    Python读取Excel实例详解 简介 Excel是广泛使用的电子表格软件,它的表格内容以.xlsx结尾的文件格式保存。Python是一门强大的编程语言,可以用于数据处理、数据可视化、机器学习等领域。在Python中,我们可以使用多种方式读取Excel文件,本文将提供一些实例进行讲解。 安装第三方库 在使用Python进行Excel读取之前,我们需要安装一…

    python 2023年6月3日
    00
  • python实现k均值算法示例(k均值聚类算法)

    下面是详细讲解“Python实现K均值算法示例(K均值聚类算法)”的完整攻略,包含两个示例说明。 K均值算法简介 K均值算法是一种基于距离的聚类算法,它的基本思想是将数据分成K个簇,使得同一簇内的数据距离尽可能小,不同簇之间的数据距离尽可能大。K均值算法的优点是简单易用,适用于大模数据,但是需要预先指定簇的数量K。 Python实现K均值算法 下面是Pyth…

    python 2023年5月14日
    00
  • 解决jupyter notebook显示不全出现框框或者乱码问题

    针对“解决jupyter notebook显示不全出现框框或者乱码问题”这个问题,可以有以下几个步骤: 步骤一:查看当前环境字符集编码 在Jupyter Notebook中,可以使用以下代码获取当前环境的字符集编码: import sys print(sys.getdefaultencoding()) 运行后如果输出结果为utf-8则表明当前环境为UTF-8…

    python 2023年5月20日
    00
  • python dlib人脸识别代码实例

    Python Dlib 是一个用于人脸识别的Python库,具有高效、精确的特点,本篇攻略将详细讲解如何使用Python Dlib进行人脸识别,并给出两个示例说明。 环境准备 在进行Python Dlib人脸识别前,需要进行以下准备: Python环境,建议使用Python 3.6以上版本; 安装Dlib库,可以使用pip进行安装:pip install d…

    python 2023年6月3日
    00
  • 详解Python requests模块

    以下是关于Python requests模块的详细攻略: Python requests模块 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接收响应。以下是Python requests模块的详细攻略: 发送HTTP请求 以下是使用requests模块发送HTTP请求的示例: import requests url = ‘htt…

    python 2023年5月14日
    00
  • 13个Pandas实用技巧,助你提高开发效率

    13个Pandas实用技巧,助你提高开发效率 1. 了解数据集大小 在处理数据集时,我们需要了解数据集的大小,可以使用 shape 属性来获得数据集的行数和列数。例如: import pandas as pd df = pd.read_csv(‘data.csv’) print(‘数据集大小:’, df.shape) 2. 列的重命名 有时候,我们需要将数据…

    python 2023年6月3日
    00
  • 如何使用Python调整图像大小

    以下是如何使用Python调整图像大小的完整攻略。 1. 安装必要的库 首先,我们需要安装两个Python库:Pillow(PIL)和OpenCV。Pillow是Python Imaging Library的一个分支,提供了丰富的图像处理功能,而OpenCV是广泛使用的计算机视觉库。在命令行中输入以下代码可以安装这两个库: pip install Pillo…

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