• 技术文章 >常见问题 >WEB开发常见问题

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

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

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

    *以下为网页源代码,一个列表(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学习网教学中心

    专题推荐:python正则获取网页内容
    品易云
    上一篇:现在编程软件有哪些?常用是哪一种? 下一篇:没有了

    相关文章推荐

    • Python中如何使用range()函数创建数字列表• Python如何输入数字并求和• 用python画爱心及代码演示• 详析python多行代码注释快捷键的用法• python IDE有哪些?哪个好用?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网