Python爬虫进行正则数据解析实战

news/2025/1/15 22:00:08/

今天继续给大家介绍Python爬虫相关知识,本文主要内容是Python爬虫进行正则数据解析实战。

一、需求分析

今天,我们尝试使用re正则表达式来对爬取到的页面进行数据解析。需求如下:
针对网页:https://blog.csdn.net/weixin_40228200/article/details/128438620,爬取正文中的所有图片。
简单分析该网站正文图片格式,可以看出图片格式如下所示:

<img src="https://img-blog.csdnimg.cn/4f69582a75a9406fa658b4321513528a.png" alt="在这里插入图片描述">

因此,我们就可以据此获取包含图片URL的正则表达式,然后提取图片下载了。

二、编码实战

针对上述需求,我们编码如下所示:

import re
import requests
import os
import timeurl='https://blog.csdn.net/weixin_40228200/article/details/128438620'
UA={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"}
page_text=requests.get(url=url,headers=UA).text
ex=r'<img src="https://img-blog.csdnimg.cn/(.*?).png" alt="在这里'
img_list=re.findall(ex,page_text,re.S)
if not os.path.exists("./csdnIMG"):os.mkdir("./csdnIMG")
for img in img_list:img_url="https://img-blog.csdnimg.cn/"+img+".png"img_data=requests.get(url=img_url,headers=UA).contentimg_name="./csdnIMG/"+img+".png"with open(img_name,'wb') as fp:fp.write(img_data)time.sleep(1)

在上述代码中,我们的正则表达式写法为:

ex=r'<img src="https://img-blog.csdnimg.cn/(.*?).png" alt="在这里'

这里的()标识匹配提取的内容,.*?标识非贪婪匹配内容。同时,在代码中为了防止访问过快,我们使用了time.sleep()函数拉大了时间间隔。

三、效果检验

上述代码执行结果如下所示:
在这里插入图片描述
从上图中可以看出,我们成功的爬取到了指定网页的图片数据!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200


http://www.ppmy.cn/news/7367.html

相关文章

不懂PO 设计模式?这篇实战文带你搞定 PO

1080442 73.1 KB 为UI页面写测试用例时&#xff08;比如web页面&#xff0c;移动端页面&#xff09;&#xff0c;测试用例会存在大量元素和操作细节。当UI变化时&#xff0c;测试用例也要跟着变化&#xff0c; PageObject 很好的解决了这个问题&#xff01; 使用UI自动化测试工…

python:什么?你听MP3居然还要付费?看我一键......

前言 大家早好、午好、晚好吖 ❤ ~ 在我们上班空闲\游玩\散步的时候,总会习惯的拿出手机放首音乐来听一听 但是吧,有时候我们听一首歌起劲的时候,它会你提醒你 这时候怎么办呢&#xff1f;通常我们是下一首&#xff0c;或者充值 但是手头不宽裕但又想听怎么办&#xff1f; …

44. 含并行连结的网络(GoogLeNet)

GoogLeNet吸收了NiN中串联网络的思想&#xff0c;并在此基础上做了改进。 这篇论文的一个重点是解决了什么样大小的卷积核最合适的问题。 毕竟&#xff0c;以前流行的网络使用小到1 * 1&#xff0c;大到11 * 11的卷积核。 本文的一个观点是&#xff0c;有时使用不同大小的卷积…

Unity Recorder的使用讲解

Unity Recorder的使用讲解使用目的插件下载插件位置窗口基本介绍基本设置选项录制列表Animation Clip参数讲解Movie 电影模式参数介绍SourceGameViewTargeted Camera360ViewRender Texture AssetOutPut ReslutionInclude AudioFlip VerticalTexture SamplingFormatMedia File F…

github上有什么好的unity开源项目?

大量项目来袭 一、github上的Unity开源项目 github上的Unity开源项目 项目名称&#xff1a;《TowerDefense》《TowerDefense》 项目链接&#xff1a;《TowerDefense》项目链接 项目简介&#xff1a; 基于 Unity 的塔防示例游戏&#xff0c;此项目主要用来上手和学习基于 Un…

MySQL窗口函数 和 阿里云日志15日留存率仪表盘统计脚本实现

窗口函数的官方描述&#xff1a;窗口函数对一组查询行执行类似聚合的操作。但是&#xff0c;虽然聚合操作将查询行分组为单个结果行&#xff0c;但窗口函数会为每个查询行生成一个结果&#xff0c;发生函数评估的行称为当前行&#xff0c;与发生函数评估的当前行相关的查询行构…

ElasticSearch安装和部署和整合springboot

因为项目每次用到&#xff0c;每次重新搭都踩坑&#xff0c;特此记录一些坑&#xff0c;防止花费大量时间在搭建和整合上面安装 准备好压缩包elasticsearch-6.2.4解压 在config文件夹下配置文件elasticsearch.yml&#xff0c;可更改自行喜欢的端口和配置账号密码安装中文分词器…

对于synchronized你了解多少?

一、聊一聊 同步与异步 同步&#xff1a;执行每一行代码时&#xff0c;都要等它执行完毕或者得到它的返回之后再执行它的下一行代码。通俗来讲就是稳稳地串行&#xff0c;绝对不会制造并行情况&#xff01; 异步&#xff1a;执行每一行代码时&#xff0c;不必立刻得到它执行的结…