4.正则提取html中的img标签的src内容

news2024/11/24 17:29:28

我们以百度贴吧的1吧举例

目录

1  把网页搞下来

2  收集url

3  处理url

4  空的src

5  容错

6  不使用数字作为文件名

7  并不是所有的图片都用img标签表示

8  img标签中src请求下来不一定正确

9  分页


 

1  把网页搞下来

搞下来之后,双击打开是这样的

2  收集url

我们实际拿的就是 img标签中src的内容,比如这个

我们通过正则获取一下

我们得到了这些结果

3  处理url

我们发现上面好多url都没有协议,那么我们需要给协议加上,然后发起请求,保存。我们用数字作为保存图像的名称

运行后发现报错了

4  空的src

错误的原因是我们获取的结果,第三条是空的

这种就是前端用来占位的,我们在保存的html中可以看到确实是没东西

这时候如果不确定的话,可以用浏览器访问,然后搜一下,发现在浏览器中它也是空的

5  容错

除了空的src,之后还可能会有很多问题,比起通过if来判断是否为空,在调试阶段中,我更倾向用try还except来捕获错误

这一次我们保存了很多的图片

但我们发现重复的图像太多了

6  不使用数字作为文件名

现在有很多方法来进行数据去重,比如使用hash库,我们这里使用文件名的方式去重,如果html中引入的文件相同,那他们的文件名也应该相同

我们发现有两种格式的url,一种是红色箭头的url以文件格式结尾,另一种是不以文件格式做结尾。但他们都有一个共同点,文件名都在最后一个斜杠的后面

那么我们可以这样写

  • 这样写有个缺点,对于查询字符串的url直接给了数字与png做名字

至此img的src内容已经全搞下来了

7  并不是所有的图片都用img标签表示

比如这张图

还有这张图

8  img标签中src请求下来不一定正确

比如这里,我保存的网页是这样的

但实际是这样的

我们这个时候就要关注img标签的其他属性,比如这里的 data-original与bpic,用浏览器访问data-original的地址,会得到缩略图

用浏览器访问bpic的地址会得到这张大图

9  分页

像这种分页一般由于url挂钩,第一页pn是0

第二页pn是50

之后的pn就会是100,150,200这种,我们可以利用这个特性爬取多页

发现可以成功爬取一些图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/974116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode 143. 重排链表

2023.9.5 先将链表中的节点存储到数组中,再利用双指针重新构造符合条件的链表。代码如下: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNod…

java八股文面试[数据库]——Page页的结构

mysql中数据是存储在物理磁盘上的,而真正的数据处理又是在内存中执行的。由于磁盘的读写速度非常慢,如果每次操作都对磁盘进行频繁读写的话,那么性能一定非常差。为了上述问题,InnoDB将数据划分为若干页,以页作为磁盘与…

了解下iVX,它可能会刷新你对传统软件开发的认知!

知识目录 前言一、聊聊传统编程语言二、iVX的诞生三、iVX VS 传统编程语言3.1 图形化 vs 文本化3.2 逻辑与语法的解耦3.3 组件与库3.4 编译与代码生成3.5 IDE与语言设计的整合3.6 面向群体3.7 灵活性与便利性 四、iVX提供多样模板,快来 ~五、iVX VS 其他低代码平台结…

面试中的自我介绍:首印象决定一切

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

MES系统来料检验:优化制造业质量控制

一、MES系统来料检验的定义: MES系统来料检验是指制造执行系统中的质量管理模块,用于对供应商提供的原材料和零部件进行质量检查和验证。该模块涵盖了来料质量数据的采集、分析、报告和追溯等功能,以确保来料符合质量要求,并提供…

【web知识清单】你想要的都有:网络、HTTP、会话保持、认证授权......持续更新中

作者简介: 目录 1.网络 2.HTTP 2.1.报文结构 2.1.1.请求报文 2.1.2.响应报文 2.2.方法 2.3.HTTPS 2.4.跨域 3.会话保持 3.1.概述 3.2.cookie 3.3.session 4.认证授权 4.1.Token 4.2.JWT 4.3.oauth 1.网络 计算机网络: 计算机网络&…

Lesson4-1:OpenCV图像特征提取与描述---角点特征

学习目标 理解图像的特征知道图像的角点 1 图像的特征 大多数人都玩过拼图游戏。首先拿到完整图像的碎片,然后把这些碎片以正确的方式排列起来从而重建这幅图像。如果把拼图游戏的原理写成计算机程序,那计算机就也会玩拼图游戏了。 在拼图时&#xff…

Problem: 205. 同构字符串;力扣;python

题目描述 代码展示 # class Solution: # def isIsomorphic(self, s: str, t: str) -> bool: # dict {} # flag 0 # for i in range(len(s)): # #记录,s # if s[i] not in dict.keys(): # …

【真题解析】系统集成项目管理工程师 2023 年上半年真题卷(综合知识)

本文为系统集成项目管理工程师考试(软考) 2023 年上半年真题(全国卷),包含答案与详细解析。考试共分为两科,成绩均 ≥45 即可通过考试: 综合知识(选择题 75 道,75分)案例分析(问答题 4 道,75分)综合知识(选择题*75)1-10 题11-20 题21-30 题31-40 题41-50 题51-60 …

让GPT成为您的科研加速器丨GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图

GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。如在科研编程、绘图领域:1、编程建议和示例代码:无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。​2、数据可视化…

vs code调试rust乱码问题解决方案

在terminal中 用chcp 65001 修改一下字符集,就行了。有的博主推荐 修改 区域中的设置,这会引来很大的问题。千万不要修改如下设置:

宁德时代龙头,比亚迪榜眼:1-7 月全球电动汽车电池市场份额公布

根据SNE Search公布的数据显示,今年1-7月全球电动汽车电池的消费总量为362.9 千兆瓦时(GWh),比去年同期的243.2 千兆瓦时(GWh)增长了49.2%。这表明电动汽车市场的增长势头依然强劲。 在这些数据中&#xff…

QuantLib学习笔记——InterestRate的应用

⭐️ 单利还是复利 巴菲特老爷子有句名言:“人生就像滚雪球,重要的是发现很湿的雪和很长的坡。” 很湿的雪,指的就是复利。很长的坡,指的就是时间。很湿的雪和很长的坡组合起来,就能滚成巨大的雪球。 哈哈&#xff0…

南京市玄武区委常委、组织部部长任宁一行率企业家研修班莅临麒麟信安调研交流

为学习在先进科学技术、人才引育等方面的领先经验,进一步加强交流合作,9月4日上午,南京市玄武区委常委、组织部部长任宁,玄武区委组织部副部长、两新工委书记鲁琳,玄武区委组织部人才综合服务科科长韩静玮等领导一行带…

Apache NIFI将Json数据转为SQL语句并插入到数据库表中

说明 本文中的NIFI是使用docker进行安装的,所有的配置参考:docker安装Apache NIFI 需求背景 现在有一个文件,里面存储的是一些json格式的数据,要求将文件中的数据存入数据库表中,以下是一些模拟的数据和对应的数据库…

Linux_VMware_虚拟机磁盘扩容

来源文章 :VMware教学-虚拟机扩容篇_vmware虚拟机扩容_系统免驱动的博客-CSDN博客 由于项目逐步的完善,需要搭建的中间件,软件越来越多,导致以前虚拟机配置20G的内存不够用了,又不想重新创建新的虚拟机,退…

数据脱敏sensitive(前端或数据库加密,解密)

可以对数据加密,解密,对数据库加密的数据进行解密显示,对数据库没有加密的数据进行加密处理展示前端等待 1:引入数据如下结构 1-1:SensitiveDecode脱敏解密注解 package com.example.poi.desensitization.annotation;…

【python基础知识】3.input()函数

文章目录 前言input()函数input()函数的使用input()函数结果的赋值input()函数的数据类型input()函数结果的强制转换input()函数知识点总结 综合复习 前言 在前面的学习中,我们学会了用print()函数对计算机下简单的命令,开始接触Python里不同类型的数据…

props和$emit

<template> <div class"son" style"border: 3px solid #000; margin: 10px"> 我是Son组件 {{ title }} <button click"changeFn">修改title</button> </div> </template> <script> expo…

电脑显示器无信号?这样做!(问题已解决)

“真的很奇怪哎&#xff0c;我的电脑显示器居然无信号。用着用着电脑就黑了&#xff0c;为什么会出现这种情况呢&#xff1f;请大佬为我解答&#xff01;” 有些朋友可能会发现&#xff0c;当我们打开电脑时&#xff0c;电脑显示器却显示“无信号”。这是为什么呢&#xff1f;电…