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

BeautifulSoup で href属性要素の内容を取得してみませんか?

于 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 に答える