python提取网页的特定内容(正则表达式实现)
来源:互联网 发布:联通沃友软件 编辑:程序博客网 时间:2024/06/06 13:09
关于正则表达式参考正则表达式
python可以很方便地抓取网页并过滤网页的内容,那么,如何从如下的网页中提取csdn文章的标题“《unix网络编程(卷1)源代码的使用方法》”。
<script type="text/ecmascript"> window.quickReplyflag = true; </script><div id="article_details" class="details"> <div class="article_title"> <span class="ico ico_type_Original"></span> <h1> <span class="link_title"><a href="/u013074465/article/details/44280335"> 《unix网络编程(卷1)》源代码的使用方法 </a></span> </h1></div>如下是核心代码,使用正则表达式实现:
html2 = opener.open(page).read()allfinds2 = re.findall(r'<span class="link_title"><a href="/u013074465/article/details/........">\r\n(.+?)</a></span>',html2, re.S)print allfinds2[0].strip()第一行:打开链接,page指向的是所要提取的文章标题的链接;
第二行:当读取到了连接的内容后,使用正则表达式进行匹配。这里要匹配的字符串的尾部是</a></span>,要匹配最近的</a></span>需要注意下面黑体字部分:
注意:
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
现在看看懒惰版的例子吧:a.*?b 匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)。
0 1
- python提取网页的特定内容(正则表达式实现)
- 用正则表达式提取网页上表格的内容
- 网页内容提取常用正则表达式
- [python]根据正则表达式提取指定的内容
- Python 正则表达式从CSV文件提取特定列
- 用正则表达式抓取制定网页的特定内容(本文以抓取a标签为例)
- 正则表达式 提取 html 标签的内容
- 正则表达式提取HTML页面的特定部分
- 利用正则表达式提取()内内容
- 【Python】怎样从网页中提取特定的字符串/行?
- 【python学习笔记】用正则表达式从含中文的网页中提取数据(含编码转换)
- 搜狗新闻语料库 python正则表达式 新闻内容提取
- [code]使用正则获取网页里的特定内容
- 正则表达式提取指定内容
- 正则表达式提取html内容
- VB6 正则表达式提取内容
- 通过正则表达式提取网页
- js正则表达式 匹配两个特定字符间的内容
- 欢迎使用CSDN-markdown编辑器
- 推荐一款 在线UML制作工具processOn
- #Java基础语法#(1)Java介绍及环境搭建
- NYOJ-451-光棍节的快乐
- Java中的匿名内部类总结
- python提取网页的特定内容(正则表达式实现)
- Find Minimum in Rotated Sorted Array
- poj 240 Power Strings
- 修改rt5350 openwrt的 mac地址
- UVA - 10029 Edit Step Ladders
- 可拖动排序ListView和GridView
- hdu 2100 Lovekey
- sgu 141
- 3. print函数的一些问题