我无法弄清楚如何使用正则表达式选择部分 html 链接
说链接是:
<a href="race?raceid=1234">Mushroom Cup</a>
我已经想出了如何获得比赛ID,但我一生都无法弄清楚如何使用正则表达式来查找“蘑菇杯”。我能做的最好的就是得到1234>蘑菇杯。
我是正则表达式的新手,我无法理解。
我无法弄清楚如何使用正则表达式选择部分 html 链接
说链接是:
<a href="race?raceid=1234">Mushroom Cup</a>
我已经想出了如何获得比赛ID,但我一生都无法弄清楚如何使用正则表达式来查找“蘑菇杯”。我能做的最好的就是得到1234>蘑菇杯。
我是正则表达式的新手,我无法理解。
很像的东西
re.findall('<a href="race\?raceid=(\d+)">([^<]+)</a>',html_text)
永远不要使用正则表达式来解析 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
是用于获取链接参数的值。在此处查看更多信息:从 URL 检索参数。
另见:
希望有帮助。