代码之家  ›  专栏  ›  技术社区  ›  heron

在python中获取html标记值

  •  5
  • heron  · 技术社区  · 12 年前

    我是蟒蛇新手。这是我在python 2.7.5上工作的代码

    import urllib2
    import sys       
    
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    
    print data
    

    得到这样的HTML标记,它就工作了。

    我想做的是,从内部获得价值 <font class="big"></font> 标签例如,我需要这个例子中的数据值:

    <font class="big">Data</font>
    

    怎么做?

    2 回复  |  直到 12 年前
        1
  •  9
  •   TerryA    12 年前

    您可以使用HTML解析器模块,例如 BeautifulSoup :

    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    

    这会找到一个标记 <font> 用一个 class="big" 。然后打印内容。

        2
  •  1
  •   falsetru    12 年前

    使用 lxml :

    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    

    >>> import lxml.html
    >>> root = lxml.html.fromstring('<font class="big">Data</font>')
    >>> [font.text for font in root.cssselect('font.big')]
    ['Data']