1

我无法弄清楚如何使用正则表达式选择部分 html 链接

说链接是:

<a href="race?raceid=1234">Mushroom Cup</a>

我已经想出了如何获得比赛ID,但我一生都无法弄清楚如何使用正则表达式来查找“蘑菇杯”。我能做的最好的就是得到1234>蘑菇杯。

我是正则表达式的新手,我无法理解。

4

2 回答 2

1

很像的东西

re.findall('<a href="race\?raceid=(\d+)">([^<]+)</a>',html_text)
于 2013-08-19T21:02:59.733 回答
1

永远不要使用正则表达式来解析 HTML。而是使用像lxmlBeautifulSoup这样的 HTML 解析器。

这是一个使用示例BeautifulSoup

import urlparse
from bs4 import BeautifulSoup

soup = BeautifulSoup("""
<html>
<head>
    <title>Python regex url grab - Stack Overflow</title>
</head>
<body>
    <a href="race?raceid=1234">Mushroom Cup</a>
</body>
</html
""")

link = soup.find('a')
par = urlparse.parse_qs(urlparse.urlparse(link.attrs['href']).query)
print par['raceid'][0]   # prints 1234
print link.text   # prints Mushroom Cup

注意,这urlparse是用于获取链接参数的值。在此处查看更多信息:从 URL 检索参数

另见:

希望有帮助。

于 2013-08-19T21:05:45.543 回答