• python爬虫的一些小小问题、python动态正则表达式


    1.首先urllib不能用了,需要引入的是urllib2,正则re。

    #coding=utf-8
    # import urllib
    import urllib2
    import re
    
    def getHtml(url):
        page = urllib2.urlopen(url)
        html = page.read()
        return html
    
    
    
    def getCountry(html):
        reg = r'<td>(.*?)</td>'
        #imgre = re.compile(reg)#编译会出错,不要再编译了。
        imglist = re.findall(reg, html, re.S|re.M)
        #re.S|re.M   'i'、'L'、'm'、's'、'u'、'x'里的一个或多个字母。
        # 表达式不匹配任何字符,但是指定相应的标志:re.I(忽略大小写)、re.L(依赖locale)、re.M(多行模式)、re.S(.匹配所有字符)、re.U(依赖Unicode)、re.X(详细模式)。
        return imglist
    
    html = getHtml("https://en.wikipedia.org/wiki/List_of_countries_by_electricity_consumption")
    print getCountry(html)

    要注意一下注释里面的内容。

    2.python动态正则表达式写法:

    import re
    f = open("b.txt")
    ll = f.read(1000000)
    print ll
    for i in range(1,220):
        reg = "'"+ str(i) + "'" + '(.*?)'+ "'"+str(i+1)+"'"#这里可以实现动态匹配
        reg2 = re.compile(r''+reg+'')#每次编译的正则表达式都不一样
        list = re.findall(reg2,ll)
        # print i,reg
        print list

    注意看写法。

  • 相关阅读:
    进程间通信
    图形的保存与重绘
    mysql记录1
    文件操作
    多线程及聊天室程序
    健康是成功之本
    文档与串行化
    HTML网页制作基础
    Hook和数据库访问
    C++基础笔记1
  • 原文地址:https://www.cnblogs.com/xubing-613/p/7131188.html
Copyright © 2020-2023  润新知