【问题标题】:Getting html tag value in python在python中获取html标签值
【发布时间】:2013-09-10 12:08:14
【问题描述】:

我是 python 的新手。这是我在 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>

怎么做?

【问题讨论】:

  • font?哇,这真是古老而邪恶的 HTML。

标签: python html parsing tags


【解决方案1】:

使用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']

【讨论】:

    【解决方案2】:

    您可以使用 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
    

    这会找到带有class="big" 的标签&lt;font&gt;。然后打印其内容。

    【讨论】:

    • ImportError: No module named bs4
    • @heron 它不在标准库中。检查我提供的链接以找到下载
    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多