Python正则匹配HTML,python正则匹配html标签_Python爬虫常用正则表达式及HTML网页标签分析总结...
这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法。它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~
当然如果会Selenium基于自动化测试爬虫、BeautifulSoup分析网页DOM节点,这就更方便了,但本文更多的是介绍基于正则的底层爬取分析。
涉及内容如下:
常用正则表达式爬取网页信息及HTML分析总结
1.获取标签之间内容
2.获取超链接之间内容
3.获取URL最后一个参数命名图片或传递参数
4.爬取网页中所有URL链接
5.爬取网页标题title两种方法
6.定位table位置并爬取属性-属性值
7.过滤等标签
8.获取' m_script = re.findall(html_script,content,re.S|re.M) for script in m_script: res_original = r''original':'(.*?)'' #原图 m_original = re.findall(res_original,script) for pic_url in m_original: print pic_url filename = os.path.basename(pic_url) #去掉目录路径,返回文件名 urllib.urlretrieve(pic_url, 'E:\\'+filename) #下载图片
运行结果如下图所示,同时下载图片至E盘。
参考文章:
https://blog.csdn.net/eastmount/article/details/44492787
9.通过replace过滤
标签
在获取值过程中,通常会存
标签,它表示HTML换行的意思。常用的方法可以通过标签''进行过滤,但是这里我想讲述的是一种Python常用的过滤方法,在处理中文乱码或一些特殊字符时,可以使用函数replace过滤掉这些字符。核心代码如下:
if '
' in value:
value = value.replace('
','') #过滤该标签
value = value.replace('\n',' ') #换行空格替代 否则总换行
例如过滤前后的例子:
達洪阿 異名: (字) 厚菴
(諡) 武壯
(勇號) 阿克達春巴圖魯
達洪阿 異名: (字) 厚菴 (諡) 武壯 (勇號) 阿克達春巴圖魯
10.获取中超链接及过滤标签
在获取值属性值过程中,可能在分析table/tr/th/td标签后,仍然存在图片链接,此时在获取文字内容时,你可能需要过滤掉这些标签。这里采用的方法如下:
value = re.sub(']+>','', value)
例如:
#encoding:utf-8import osimport revalue = '''table class='infobox' style='width: 21em; text-align: left;' cellpadding='3'>tr bgcolor='#CDDBE8'>th colspan='2'>center class='role'>b>中華民國政治人士b>br />center>th>tr>tr>th>性別:th>td>男td>tr>tr>th>政黨:th>td>span class='org'>img alt='中國國民黨' src='../../../../images/Kuomintang.svg.png' width='19' height='19' border='0' />a href='../../../../articles/%8B%E6%B0%91%E9%BB%A8.html' title='中國國民黨'>中國國民黨a>span>td>tr>table>'''value = re.sub('[^>]+>','', value) #过滤HTML标签print value
输出如下:
>>> 中華民國政治人士性別:男政黨:中國國民黨>>>
虽然仅仅包括汉字,但是中间会存在换行,需要过滤
即可:
if '
' in value: value = value.replace('
','') value = value.replace('\n',' ')value = re.sub(']+>','', value) #过滤HTML标签print value#输出仅仅一行如下:#中華民國政治人士 性別: 男 政黨: 中國國民黨
下面讲述第二部分,通过正则表达式获取中的src超链接,代码如下:
test = '''
'''print re.findall('src='(.*?)'',test)
输出如下所示:
>>> ['../images/Kuomintang.png']>>>
findall函数返回的总是正则表达式在字符串中所有匹配结果的列表,即findall中返回列表中每个元素包含的信息。
最后希望文章对你有所帮助,后面如果遇到新的相关知识,我也会即使的更新添加的。— END —
Python正则匹配HTML,python正则匹配html标签_Python爬虫常用正则表达式及HTML网页标签分析总结...相关推荐
- python正则匹配html标签_Python爬虫常用正则表达式及HTML网页标签分析总结
这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...
- python中scrapy的middleware是干嘛的_python爬虫常用之Scrapy 中间件
一.概述 1.中间件的作用 在scrapy运行的整个过程中,对scrapy框架运行的某些步骤做一些适配自己项目的动作. 例如scrapy内置的HttpErrorMiddleware,可以在http请求 ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结
这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...
- python爬虫csdn里下载_python爬虫搭配起Bilibili唧唧的流程分析
前言 最近需要大规模下载B站视频,同时要将下载好的视频用BV号进行重命名,最后上传至服务器.这个工作一开始我是完全手工完成的,通过游猴来下载,可是下载几十个视频还好,再多一点的话真是太烦了,而且生产力 ...
- python正则表达式爬虫_Python爬虫之正则表达式一些常用方法
正则表达式与Python 在了解了正则表达式的相关知识之后,开始查看Python当前如何通过使用re模块来支持正则表达式,re模块在很早之前就引入了,用于替换那些已过时的regex模块和regsub模 ...
- python爬虫电影输出到文件中_python爬虫用scrapy获取影片的实例分析
我们平时生活的娱乐中,看电影是大部分小伙伴都喜欢的事情.周围的人总会有意无意的在谈论,有什么影片上映,好不好看之类的话题,没事的时候谈论电影是非常不错的话题.那么,一些好看的影片如果不去电影院的话,在 ...
- python爬虫正则表达式爬取网页标签_Python爬虫实例(4)-用urllib、re和正则表达式爬取网页图片...
文章目录简介正则爬虫Demo本例知识点 简介 python的第三方包极多种,尽量多看多用,对开发者来说是很好的.在爬虫领域,请求网页,除了requests包之外,还有urllib.request模块: ...
- python爬虫文字加密_Python爬虫进阶必备 | X薯中文网加密分析
此次来分析某个小说网站. aHR0cHM6Ly9nLmhvbmdzaHUuY29tL2NvbnRlbnQvOTM0MTYvMTM4Nzc5MTIuaHRtbA==node 分析请求 先来看看页面的请求 ...
- 与python相关的爬虫工具_python爬虫常用工具集合
一.常用模块 1.requests模块,网络请求 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比url ...
最新文章
- 利用gulp对项目html,js,css,图片进行压缩
- HDOJ 3642 Get The Treasury(扫描线 + 线段树 + 离散化 立方体的并)
- 反射就是获取该类的.class文件里面的方法,属性
- html video 设置进度条不可拖动_PHP大文件切割上传并带上进度条功能,不妨一试...
- 专家解惑 | 关于华为云盘古大模型,你想问的都在这里~
- 普通人有必要学新媒体吗?
- IntelliJ IDEA 12.0中文字符显示不正常解决方案
- 【老生谈算法】matlab实现基本遗传算法应用实例——遗传算法
- Charles抓包工具的破解以及使用
- virtualxposed使用教程_VirtualXposed
- httpCient 的getResponseBodyAsStream instead is recommended使用方法
- 2020计算机专硕考数二的学校,2020考研备考:考研数一、数二、数三哪个最难?...
- Java学习第二十四天
- Excel技能之查找筛选排序,同事竖起大拇指
- B站UP主恰饭新思路:产品糅合进有意思的内容里
- LAIC2022之犯罪事实实体识别(基于飞桨UIE+半监督)
- php获取网卡mac地址吗,php获取网卡MAC地址步骤详解
- Java Web 图说
- 判断三极管是否是NPN与PNP,并判断EBC
- vuex的使用说明(个人专用)
热门文章
- pandas将dataframe中的年、月、日数据列合并成完整日期字符串、并使用to_datetime将字符串格式转化为日期格式
- R语言difftime函数计算时间差值实战
- 机器学习数据预处理之离群值/异常值:箱图法(boxplot method)
- A networkIntegration Approach for Drug-Target interaction Prediction and ComputationalDrug Repositio
- 大学计算机数学基础2,大学计算机基础(第2版)
- oracle odat,通过Oracle执行系统命令
- this. $ refs: undefined 的解决办法
- python opencv调节图片亮度与对比度
- cv2.rectangle()画出矩形的用法
- 【MySQL命令】远程连接、数据库备份