【发布时间】:2011-08-28 19:54:04
【问题描述】:
我正在用 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 插件编写的标准,我认为这是有原因的。
【问题讨论】:
-
如果 link.string 类似于 链接名称 ,正则表达式的模式与它们匹配是正确的。但是不要调用标识符为'match'的对象,我不认为你重写了re的方法match,但这很危险
-
你应该使用
for i,prog in enumerate(programs):
标签: python html-parsing xbmc