Python正则表达式url抓取

Python正则表达式url抓取,python,html,regex,html-parsing,wildcard,Python,Html,Regex,Html Parsing,Wildcard,我不知道如何使用正则表达式选择html链接的一部分 假设链接是: <a href="race?raceid=1234">Mushroom Cup</a> 我已经知道了如何获取种族id,但我一辈子都无法知道如何使用正则表达式来查找“蘑菇杯”。我能做的最好的事情就是得到1234>蘑菇杯 我不熟悉正则表达式,它太难理解了。非常类似于 re.findall('<a href="race\?raceid=(\d+)">([^<]+)</a>',h

我不知道如何使用正则表达式选择html链接的一部分

假设链接是:

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

我已经知道了如何获取种族id,但我一辈子都无法知道如何使用正则表达式来查找“蘑菇杯”。我能做的最好的事情就是得到1234>蘑菇杯


我不熟悉正则表达式,它太难理解了。

非常类似于

re.findall('<a href="race\?raceid=(\d+)">([^<]+)</a>',html_text)

re.findall(”([^永远不要使用正则表达式来解析HTML。相反,请使用类似或的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
导入URL解析 从bs4导入BeautifulSoup 汤=美汤 Python正则表达式url抓取-堆栈溢出
输入会有多大的变化?如果你从一个大文档中的多个地方提取这些数据,那么使用HTML解析器而不是正则表达式可能是值得的。哦……这似乎比+1更好,因为我大体上同意使用正则表达式解析HTML是一个坏主意,但是最好演示一下为什么这个解决方案可能比简单的正则表达式更适合于OP的问题。我知道有几个原因不使用regex(主要是html是一种嵌套语言,regex不能很好地处理嵌套(无状态))我在下载beautiful soup(我有anaconda python软件包发行版)时遇到了问题,所以感谢您提供的这个regex答案请不要使用regex解析html:)如果那真的是他所需要的一切,那么用正则表达式就很容易得到……虽然一般来说我肯定agree@JoranBeasley是的,我会给你加1分,因为你对OP很好,而我:D