3

我正在用 python 为 xbmc 编写一个插件。我有一个格式为的字符串列表:
<a href="/www.link.to/something">name of link</a>

通过使用美丽的石头汤(代码的相关部分):

 soup = BeautifulStoneSoup(link, convertEntities=BeautifulStoneSoup.XML_ENTITIES)
    programs = soup('ul')
    i = 0
    for prog in programs:
        i = i+1
        if i==(5+getLetterValue(name)):
            j = 0
            while j < len(prog('li')):
                li = prog('li')[j]
                link = li('a')[0]

getLeterValue是一个返回索引的函数,该索引指示放置此特定“ul”标签的位置(根据所需的字母)。

现在我想在链接和文本中拆分链接。我尝试使用 re.compile:
match=re.compile('<a href="(.+?)">(.+?)</a>').findall(link.string)
但我得到的只是match=[]

我做错了什么?

注意: 我知道我应该正则表达式 html 代码,但我不确定这个“规则”对小字符串是否有效。此外,由于某种原因,这几乎是 xbmc 插件编写的标准,我认为这是有原因的。

4

2 回答 2

2

Why not let BeautifulSoup give you the href attribute and the element contents?

于 2011-08-28T20:02:29.563 回答
0

最简单的方法是使用 lxml:

from lxml.html import fromstring

elem = fromstring(link.string)
print elem.attrib["href"]
print elem.text
于 2011-08-28T20:01:00.007 回答