品易云推流 关闭
文章详情页
文章 > WEB开发常见问题 > 怎么用python正则获取网页内容

怎么用python正则获取网页内容

头像

2020-10-28 11:58:515505浏览 · 0收藏 · 0评论

相信很多小伙伴刚接触正则这个词语,脑海中一点概念也没有,其实从字面上我们稍微能够揣摩到一点,这需要去“接触”内容,由此,那就可以展开本章话题。

先看一组后台收到的代码数据,要求正则获取网页内容:

*以下为网页源代码,一个列表(12行),需要获取 ID后面的数字和中文内容,并保存到文本。

<ul id="iyy_speak">

<li><a href="player.php?type=2&id=46819" target="_blank" >中文内容</a><span class="yy_man"><a href="player.php?type=2&id=46819" target="_blank">试听</a></span></li>

<li><a href="player.php?type=2&id=46818" target="_blank" >中文内容2</a><span class="yy_man"><a href="player.php?type=2&id=46818" target="_blank">试听</a></span></li>

<li><a href="player.php?type=2&id=45717" target="_blank" >中文内容3</a><span class="yy_man"><a href="player.php?type=2&id=45717" target="_blank">试听</a></span></li>

</ul>

代码演示:

#!/usr/bin/env python
#coding=utf-8
import re
string = '''
<ul id="iyy_speak">
     
                    <li><a href="player.php?type=2&id=46819" target="_blank" >中文内容</a><span class="yy_man"><a href="player.php?type=2&id=46819" target="_blank">试听</a></span></li>
     
                      <li><a href="player.php?type=2&id=46818" target="_blank" >中文内容2</a><span class="yy_man"><a href="player.php?type=2&id=46818" target="_blank">试听</a></span></li>
 
<li><a href="player.php?type=2&id=45717" target="_blank" >中文内容3</a><span class="yy_man"><a href="player.php?type=2&id=45717" target="_blank">试听</a></span></li>
     
                      </ul>
'''
match = re.findall("<li><a href=\"player.php\?type=2\&id=(\d+)\".*?>(.*?)\<",string)
for x,y in match:
    print x,y.decode('utf-8')

认识正则表达式:

正则表达式就是对字符串进行操作的逻辑公式,相当于‘过滤’这个字符串。一开始学习可能是懵懂的,小编就是这样,后来一直不停的复习,总算是学会了。

常用正则表达式:

单字符:

. : 除换行以外所有字符

[] :[aoe] [a-w] 匹配集合中任意一个字符

\d :数字 [0-9]

\D : 非数字

\w :数字、字母、下划线、中文

\W : 非\w

\s :所有的空白字符包,括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

\S : 非空白

数量修饰:

* : 任意多次 >=0

+ : 至少1次 >=1

? : 可有可无 0次或者1次

{m} :固定m次 hello{3,}

{m,} :至少m次

{m,n} :m-n次

边界:

$ : 以某某结尾

^ : 以某某开头

结合实例介绍和常用的字符,很容易弄清楚这部分内容,更多python实用知识,点击进入PyThon学习网教学中心

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图