这篇文章主要是介绍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网页标签分析总结...相关推荐

  1. python正则匹配html标签_Python爬虫常用正则表达式及HTML网页标签分析总结

    这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...

  2. python中scrapy的middleware是干嘛的_python爬虫常用之Scrapy 中间件

    一.概述 1.中间件的作用 在scrapy运行的整个过程中,对scrapy框架运行的某些步骤做一些适配自己项目的动作. 例如scrapy内置的HttpErrorMiddleware,可以在http请求 ...

  3. [python] 常用正则表达式爬取网页信息及分析HTML标签总结

    这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...

  4. python爬虫csdn里下载_python爬虫搭配起Bilibili唧唧的流程分析

    前言 最近需要大规模下载B站视频,同时要将下载好的视频用BV号进行重命名,最后上传至服务器.这个工作一开始我是完全手工完成的,通过游猴来下载,可是下载几十个视频还好,再多一点的话真是太烦了,而且生产力 ...

  5. python正则表达式爬虫_Python爬虫之正则表达式一些常用方法

    正则表达式与Python 在了解了正则表达式的相关知识之后,开始查看Python当前如何通过使用re模块来支持正则表达式,re模块在很早之前就引入了,用于替换那些已过时的regex模块和regsub模 ...

  6. python爬虫电影输出到文件中_python爬虫用scrapy获取影片的实例分析

    我们平时生活的娱乐中,看电影是大部分小伙伴都喜欢的事情.周围的人总会有意无意的在谈论,有什么影片上映,好不好看之类的话题,没事的时候谈论电影是非常不错的话题.那么,一些好看的影片如果不去电影院的话,在 ...

  7. python爬虫正则表达式爬取网页标签_Python爬虫实例(4)-用urllib、re和正则表达式爬取网页图片...

    文章目录简介正则爬虫Demo本例知识点 简介 python的第三方包极多种,尽量多看多用,对开发者来说是很好的.在爬虫领域,请求网页,除了requests包之外,还有urllib.request模块: ...

  8. python爬虫文字加密_Python爬虫进阶必备 | X薯中文网加密分析

    此次来分析某个小说网站. aHR0cHM6Ly9nLmhvbmdzaHUuY29tL2NvbnRlbnQvOTM0MTYvMTM4Nzc5MTIuaHRtbA==node 分析请求 先来看看页面的请求 ...

  9. 与python相关的爬虫工具_python爬虫常用工具集合

    一.常用模块 1.requests模块,网络请求 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比url ...

最新文章

  1. 利用gulp对项目html,js,css,图片进行压缩
  2. HDOJ 3642 Get The Treasury(扫描线 + 线段树 + 离散化 立方体的并)
  3. 反射就是获取该类的.class文件里面的方法,属性
  4. html video 设置进度条不可拖动_PHP大文件切割上传并带上进度条功能,不妨一试...
  5. 专家解惑 | 关于华为云盘古大模型,你想问的都在这里~
  6. 普通人有必要学新媒体吗?
  7. IntelliJ IDEA 12.0中文字符显示不正常解决方案
  8. 【老生谈算法】matlab实现基本遗传算法应用实例——遗传算法
  9. Charles抓包工具的破解以及使用
  10. virtualxposed使用教程_VirtualXposed
  11. httpCient 的getResponseBodyAsStream instead is recommended使用方法
  12. 2020计算机专硕考数二的学校,2020考研备考:考研数一、数二、数三哪个最难?...
  13. Java学习第二十四天
  14. Excel技能之查找筛选排序,同事竖起大拇指
  15. B站UP主恰饭新思路:产品糅合进有意思的内容里
  16. LAIC2022之犯罪事实实体识别(基于飞桨UIE+半监督)
  17. php获取网卡mac地址吗,php获取网卡MAC地址步骤详解
  18. Java Web 图说
  19. 判断三极管是否是NPN与PNP,并判断EBC
  20. vuex的使用说明(个人专用)

热门文章

  1. pandas将dataframe中的年、月、日数据列合并成完整日期字符串、并使用to_datetime将字符串格式转化为日期格式
  2. R语言difftime函数计算时间差值实战
  3. 机器学习数据预处理之离群值/异常值:箱图法(boxplot method)
  4. A networkIntegration Approach for Drug-Target interaction Prediction and ComputationalDrug Repositio
  5. 大学计算机数学基础2,大学计算机基础(第2版)
  6. oracle odat,通过Oracle执行系统命令
  7. this. $ refs: undefined 的解决办法
  8. python opencv调节图片亮度与对比度
  9. cv2.rectangle()画出矩形的用法
  10. 【MySQL命令】远程连接、数据库备份