需要使用RegEx和BeautifulSoup查找文本


问题内容

我正在尝试解析一个网站,以提取一些存储在主体中的数据,例如:

<body>
    <b>INFORMATION</b>
    Hookups: None
    Group Sites: No
    Station: No

    <b>Details</b>
    Ramp: Yes
</body>

我想使用BeautifulSoup4和RegEx提取连接和组站点等的值,但是bs4和RegEx都是新手。我已经尝试了以下方法来获取联播网值:

soup = BeautifulSoup(open('doc.html'))
hookups = soup.find_all(re.compile("Hookups:(.*)Group"))

但是搜索返回为空。


问题答案:

BeautifulSoupfind_all只能与 标签一起使用
。假设HTML如此简单,您实际上可以仅使用纯正则表达式来获取所需的内容。否则,您可以使用find_all然后获取.text节点。

re.findall("Hookups: (.*)", open('doc.html').read())

您也可以使用从textBeautifulSoup 4.2开始的属性按标签内容搜索

soup.find_all(text=re.compile("Hookups:(.*)Group"));