当前位置: 首页 > news >正文

python 使用requests爬取百度图片并显示

爬取百度图片并显示

  • 引言
  • 一、图片显示
  • 二、代码详解
    • 2.1 得到网页内容
    • 2.2 提取图片url
    • 2.3 图片显示
  • 三、完整代码

引言

爬虫(Spider),又称网络爬虫(Web Crawler),是一种自动化程序,可以自动地浏览互联网上的网站,并从中抓取数据。它主要通过 HTTP / HTTPS 协议访问网页,并将访问到的网页内容进行解析和分析,从而提取有用的数据,例如新闻、评论、图片、视频等。爬虫在搜索引擎、大数据采集、信息监测和分析等领域都有广泛的应用。

Pyhon有很多库可以实现爬虫功能,如Python中的requests库是一个第三方HTTP客户端库,它提供了一种更简单、更人性化的方式来发送HTTP/1.1请求。它允许我们发送HTTP/1.1请求以及各种HTTP方法,如GET、POST、PUT、DELETE、PATCH等。使用requests库,我们可以轻松地向外部API发送HTTP请求,并获取请求的响应。requests库提供了很多高级功能,比如会话管理、SSL证书验证、HTTP代理支持、文件上传等等。

一、图片显示

在这里插入图片描述
本文旨在介绍使用Python中的requests库爬取百度图片并显示的操作方法。该操作较为简单,适合初学者入门。
使用pip可以很容易地安装requests库:pip install requests

二、代码详解

需要导入的库:

import requests
from PIL import Image
from io import BytesIO

requests库用于获取网络数据,PIL库用于处理图像数据,BytesIO用于将二进制数据转换为图像数据。

2.1 得到网页内容

主要步骤:

  1. 设定好headers,防止网页拒绝被访问
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
  1. 在url中设定好queryWordword,即百度图片查询的关键词,本文以tupian为例 (亦可设置为汉子)
url = ('https://image.baidu.com/search/acjson?''tn=resultjson_com&logid=9047316633247341826&ipn=rj&ct=201326592&is=&fp=result&''queryWord=tupian&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&''word=tupian&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&''pn=30&rn=30&gsm=1e&1616935040863=')
  1. 使用requests或其它获取网页内容即可,这里使用requests库发送GET请求并传递请求头和参数,获取响应的网页数据。
import requests
response = requests.get(url=url, headers=headers)
response.encoding = 'utf-8'

2.2 提取图片url

根据网页图片链接格式,提取图片的链接,网页内容中的图片链接以"thumbURL"开始:
在这里插入图片描述

使用正则表达式提取 可参考正则表达式(详解)

import re
imgs =[]
reg = re.compile('"thumbURL":"(.+?\.jpg)"')
imgs.extend(reg.findall(response))
print(imgs)

2.3 图片显示

获取图片链接里的内容,并显示
获取到的img是二进制字符,先试用BytesIO读取后显示

img = requests.get(url=imgs[0], headers=headers).content
from PIL import Image
from io import BytesIO
bytes_stream = BytesIO(img)
img = Image.open(bytes_stream)
img.show()

至此,成功地使用requests库爬取了百度图片,并将其显示出来。需要注意的是,此处仅为简单的入门示例,对于复杂的网站爬取和数据解析,需要使用更为专业的工具和技术。

三、完整代码

# 1.得到网页内容
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
url = ('https://image.baidu.com/search/acjson?''tn=resultjson_com&logid=9047316633247341826&ipn=rj&ct=201326592&is=&fp=result&''queryWord=tupian&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&''word=tupian&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&''pn=30&rn=30&gsm=1e&1616935040863=')
import requests
response = requests.get(url=url, headers=headers)
response.encoding = 'utf-8'
response = response.text
#print(response)# 2.提取图片url
import re
imgs =[]
reg = re.compile('"thumbURL":"(.+?\.jpg)"')
imgs.extend(reg.findall(response))
print(imgs)# 3.显示图片
img = requests.get(url=imgs[0], headers=headers).content
from PIL import Image
from io import BytesIO
bytes_stream = BytesIO(img)
img = Image.open(bytes_stream)
img.show()

相关文章:

python 使用requests爬取百度图片并显示

爬取百度图片并显示 引言一、图片显示二、代码详解2.1 得到网页内容2.2 提取图片url2.3 图片显示 三、完整代码 引言 爬虫(Spider),又称网络爬虫(Web Crawler),是一种自动化程序,可以自动地浏览…...

DataSecurity Plus:守护企业数据安全的坚实堡垒

在当今数字化时代,数据被认为是企业最宝贵的资产之一。然而,企业面临着巨大的数据安全挑战,其中之一就是数据泄露。数据泄露可能导致敏感信息的丧失、法律责任的追究以及声誉受损。因此,保护企业数据安全已经成为每个组织的首要任…...

《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制

title: 《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制Windows,macOS,Linux设备 tags: 个人成长 categories:树莓派不吃灰 前段时间, 有一台老式MacBook Pro被我改造成了影视资源解码主机, 《树莓派4B家庭服务器搭…...

Redis 分布式锁

面试题: Redis除了拿来做缓存,你还见过基于Redis的什么用法? 1.数据共享,分布式Session 2.分布式锁 3.全局ID 4.计算器、点赞 5.位统计 6.购物车 7.轻量级消息队列:list、stream 8.抽奖 9.点赞、签到、打卡 10.差集交集…...

水循环原理VR实景教学课件开发

日本核污水排海让人们越来越重视海洋大气层水循环的安全,水循环是一个周而复始、循环往复的动态过程,为了将水循环过程以形象、生动地形式展示出来,水循环VR全景动态演示逐渐受到大家青睐。 传统的水循环教育方式通常是通过图片、动画或实地考…...

[小尾巴 UI 组件库] 全屏响应式轮播背景图(基于 Vue 3 与 Element Plus)

文章归档于:https://www.yuque.com/u27599042/row3c6 组件库地址 npm:https://www.npmjs.com/package/xwb-ui?activeTabreadme小尾巴 UI 组件库源码 gitee:https://gitee.com/tongchaowei/xwb-ui小尾巴 UI 组件库测试代码 gitee&#xff1a…...

关于ESP32S3无法识别到端口问题

前言 (1)因为实习问题,需要使用ESP32BOX进行二次开发。一般来说,接触一款MCU,3天上手是基本操作。但是对于乐鑫的芯片,环境搭建是真的折磨人(苦笑),而且官方文档几乎没有…...

如何判断bug是前端bug还是后端bug

1.前后端bug 特征: 前端主要负责显示数据,后端主要负责处理数据、存储数据,前后端主要通过接口进行数据交换。 前端bug的特征: 界面显示类问题:如文字大小不一,控件颜色不搭,控件不整齐&#x…...

EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充

EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充 1、填充数据然后将文件输出给浏览器 1、填充数据然后将文件输出给浏览器 官网地址 官网的demo填充生成的是file文件, 实际需求用的最多的是 填充完数据将Excel输出给浏览器 填充模版Excel文…...

精通数据集成:轻易云数据集成平台应用实战与技术内幕

企业系统中数据交互的重要性不言而喻。一个系统如果孤立运行,即使积累了海量数据,仍然是一座信息孤岛。另一方面,一个积极参与数据交互的系统,成为各系统之间的“交际花”,具备中台的性质。 然而,大多数情况…...

“2023中国数字化服务之选”榜单发布,谷器数据荣耀登榜!

9月7日,行业权威媒体Internet Deep联合eNET研究院、德本咨询重磅发布了“2023中国数字化服务之选”榜单,经专家评审认定,谷器数据凭借领先的综合技术实力与产品应用创新能力荣耀登榜! 谷器数据生产制造数字化服务根据客户整体需求…...

iisfastchi漏洞复现

1.查看版本 2.在路径中写入 php脚本 发现使用不了 3.环境搭建 结局打开 把限制打开...

虚拟机Ubuntu操作系统常用终端命令(详细解释+详细演示)

虚拟机Ubuntu操作系统常用终端命令 本篇讲述了Ubuntu操作系统常用的三个功能,即归档,软链接和用户管理方面的相关知识。希望能够得到大家的支持。 文章目录 虚拟机Ubuntu操作系统常用终端命令二、使用步骤1.归档1.1创建档案包1.2还原档案包1.3归档并压缩…...

【力扣每日一题】2023.9.12 课程表Ⅳ

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 今天是课程表系列题目的最后一题,因为我在题库里找不到课程表5了,所以今天的每日一题就是最后一个课程表了。 题…...

CentOS 安装HTTP代理服务器 Tinyproxy

Tinyproxy是一个小型的基于GPL的HTTP/SSL代理程序,非常适合小型网络而且便于快速部署。这个代理程序最大的优点就是占用系统资源比较少。这里使用的系统为CentOS7.6,可以直接 yum 方式安装。 yum install tinyproxy -y 如果提示找不到安装包&#xff0…...

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行 期望目标 和 模板配置复选框代码数据分行显示在使用PHPWORD模板替换时,经常会有 动态渲染选择项 和 选择项需要被勾选的要求,以及动态数据分行显示等要求。 本文根据 空复选框、勾选复选框…...

vue学习之 v-for key

v-for key Vue使用 v-for渲染的元素列表时&#xff0c;它默认使用“就地更新”的策略。如果数据项的顺序被改变&#xff0c;Vue 将不会移动 DOM元素来匹配数据项的顺序&#xff0c;而是就地更新每个元素。创建 demo9.html,内容如下 <!DOCTYPE html> <html lang"…...

ARM接口编程—IIC总线(exynos 4412平台)

IIC总线简介 IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线 主要用于近距离、低速的芯片之间的通信&#xff1b;IIC总线有两根双向的信号线一根数据线SDA用于收发数据&#xff0c;一根时钟线SCL用于通信双方时钟的同步&#xff1b;IIC总线硬件结构简单&#xff…...

ReactNative进阶(二十一)开源插件 react-native-device-info 获取设备信息

文章目录 一、前言二、拓展阅读 一、前言 项目开发过程中&#xff0c;需要获取设备信息&#xff0c;例如获取设备名称。可通过使用开源的第三方组件react-native-device-info&#xff0c;该组件适用于iOS和Android双平台。 在ReactNative项目中可通过npm命令下载 react-nativ…...

MySql学习笔记05——DML

DML 插入数据insert insert into 表名(字段名1&#xff0c;字段名2&#xff0c;字段名3...)values(值1&#xff0c;值2&#xff0c;值3)&#xff1b;字段名和值要一一对应&#xff08;顺序对应&#xff0c;数据类型对应&#xff09; insert into t_student(no,name,sex,age,…...

halcon对图片进行处理基础

实例图片 C:\Users\Public\Documents\MVTec\HALCON-19.11-Progress\examples\images*读取图片 read_image (Image1, D:/c/image/1.png) *读取大小 get_image_size(Image1,Width, Height) *创建窗口 dev_close_window() dev_open_window(0, 0, Width, Height, black, WindowHan…...

element-ui在vue中如何实现校验两个复选框至少选择一个!

整体进行验证 想验证至少选择一个复选框&#xff0c;可以将这两个复选框视为一个整体进行验证。在 Element UI 中&#xff0c;可以使用自定义验证规则来实现这一点。 你可以在 rules 对象中定义一个自定义的验证规则来检查 isCheck1 和 isCheck2 至少有一个被选中。 以下是一…...

DeepinV20/Ubuntu安装postgresql方法

首先&#xff0c;建议看一下官方的安装文档PostgreSQL: Linux downloads (Ubuntu) PostgreSQL Apt Repository 简单的说&#xff0c;就是Ubuntu下的Apt仓库&#xff0c;可以用来安装任何支持版本的PgSQL。 If the version included in your version of Ubuntu is not the one…...

汽车ECU软件升级方案介绍

软件OTA的背景 随着汽车网联化的发展,现在的汽车电子架构都支持软件空中升级,即大家常说的OTA(Software Update and Upgrade Over the Air),传统的软件升级常常是离线升级,需要车主将车开到维修保养中心进行软件更新。不过OTA升级方式带来方便之处需要考虑的问题也随之增…...

首家!亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试

近日&#xff0c;在中国信通院“可信数据库”数据库迁移工具专项测试中&#xff0c;湖南亚信安慧科技有限公司&#xff08;简称&#xff1a;亚信安慧科技&#xff09;数据库数据同步平台V2.1产品依据《数据库迁移工具能力要求》、结合亚信科技AntDB分布式关系型数据库产品&…...

为什么好多人想辞职去旅行?

一、“世界那么大,我想去看看。” 这句话成为了网络上的一句流行语。这句话的出处就是在一位女教师的一份辞职申请上,这样的辞职理由是多少人想干却不敢干的事情。这句话的流行&#xff0c;反映了现代社会中人们对于探索未知世界和追求个人梦想的渴望。在这个快速发展的时代&am…...

vim的使用介绍以及命令大全

懒羊羊感谢大家的关注和三连支持~ 目录 前言 一、vim的使用介绍 二、命令大全 1.命令模式 &#xff08;1&#xff09;复制&#xff08;配合粘贴命令p使用&#xff09; &#xff08;2&#xff09;剪切 &#xff08;3&#xff09;粘贴 &#xff08;4&#xff09;删除 …...

JavaScript高级技巧:深入探索JavaScript语言的高级特性和用法

当我们谈论JavaScript高级技巧时&#xff0c;以下是一些示例来说明这些概念&#xff1a; 闭包&#xff08;Closures&#xff09;&#xff1a; function outerFunction() {var outerVariable Hello;function innerFunction() {console.log(outerVariable);}return innerFunct…...

虹科方案|HK-Edgility利用边缘计算和VNF降本增效

一、边缘计算和 VNF 在当今瞬息万变的数字环境中&#xff0c;边缘虚拟化网络功能&#xff08;VNF&#xff09;是一个既能够优化网络基础设施&#xff0c;又能控制成本的创新型解决方案。它使客户能够将多个基于软件的 VNF 整合到一个专用计算设备上。更值得高兴的是&#xff0c…...

SpringBoot项目--电脑商城【新增收货地址】

1.新增收货地址 t_address CREATE TABLE t_address (aid INT AUTO_INCREMENT COMMENT 收货地址id,uid INT COMMENT 归属的用户id,name VARCHAR(20) COMMENT 收货人姓名,province_name VARCHAR(15) COMMENT 省-名称,province_code CHAR(6) COMMENT 省-行政代号,city_name VARC…...

wordpress 最新评论/sem竞价推广是什么意思

1-5级:冰弹(icebolt)1,冰封装甲(frozenarmor)1,剩下的点数全部加温暖(warmth).火弹(firebolt)不加.这样你可以换上你找到的一些投掷装备,如飞刀,标枪等等.换下那根1火弹的法杖.对付血鸟(bloodraven)等均没有问题.6-11级:霜之新星(frostnova)1,静电力场(staticfield)1,剩下的加冰…...

海西高端网站建设公司/浙江网站建设推广

单机 项目早期 单机运行 开发中涉及到一些状态都是本地内存存储 例如ConcurrentHashMap存储在线用户信息. 集群 后期业务增长单机慢慢不足以支持&#xff0c;这时候考虑到要弄集群了。 实时在线用户信息&#xff0c;之前是存在本地内存ConcurrentHashMap &#xff0c;一旦部…...

中英网站建立/企业推广策划书

Ubuntu修改主机名参考 在CentOS7中&#xff0c;有三种定义的主机名: 1. 静态的&#xff08;Static hostname&#xff09; “静态”主机名也称为内核主机名&#xff0c;是系统在启动时从/etc/hostname自动初始化的主机名。 2. 瞬态的&#xff08;Tansient hostname&#xff0…...

吐鲁番seo快速排名/超级seo助手

更新 【2020.02.14】 增加了Android11的适配 增加了好友分享和隐私政策 界面更改为蓝色更清新 下载地址&#xff1a;http://www.soutcc.com/mockgps/ 感谢 &#xff20;何生 更新 【2019.11.14】 增加了Android10的适配 修复了判断权限出错的bug 修改了启动后crash的b…...

网站服务合同模板/360搜索引擎网址

本节内容&#xff1a;1&#xff0c;计算机的发展史2&#xff0c;计算机的组成1&#xff0c;计算机的发展史1946年2月14日&#xff0c;由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC Electronic Numerical And Calculator)在美国宾夕法尼亚大学问世了。E…...

邯郸专业做网站报价/查关键词热度的网站

在实际的开发过程中&#xff0c;我们经常需要用到缓存。使用缓存常见的一个场景就是key不在缓存中&#xff0c;这个时候我们会去读取这个key对应的值&#xff0c;然后把这个值放到缓存中&#xff0c;代码如下&#xff1a; public class CacheNoFuture {private ConcurrentHashM…...