我无法弄清楚如何使用正则表达式选择部分html链接
说链接是:
<a href="race?raceid=1234">Mushroom Cup</a>
我已经想出如何获得比赛ID,但我不能为我的生活弄清楚如何使用正则表达式来找到'蘑菇杯'。我能做的最好的就是获得1234&gt;蘑菇杯。
我是正则表达式的新手,对我来说理解太多了。
答案 0 :(得分:1)
非常像
re.findall('<a href="race\?raceid=(\d+)">([^<]+)</a>',html_text)
答案 1 :(得分:1)
不要使用正则表达式来解析HTML。而是使用像lxml或BeautifulSoup这样的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
用于获取链接参数的值。点击此处了解详情:Retrieving parameters from a URL。
另见:
希望有所帮助。