我正在尝试解析网站以提取存储在正文中的一些数据,例如:
<body>
<b>INFORMATION</b>
Hookups: None
Group Sites: No
Station: No
<b>Details</b>
Ramp: Yes
</body>
我想使用 BeautifulSoup4 和 RegEx 提取 Hookups 和 Group Sites 等的值,但我对 bs4 和 RegEx 都不熟悉。我尝试了以下方法来获取连接值:
soup = BeautifulSoup(open('doc.html'))
hookups = soup.find_all(re.compile("Hookups:(.*)Group"))
但是搜索结果是空的。
最佳答案
BeautifulSoup 的find_all
仅适用于标签。假设 HTML 如此简单,您实际上可以仅使用纯正则表达式来获得所需内容。否则,您可以使用 find_all
然后获取 .text
节点。
re.findall("Hookups: (.*)", open('doc.html').read())
从 BeautifulSoup 4.2 开始,您还可以使用 text
属性按标签内容搜索
soup.find_all(text=re.compile("Hookups:(.*)Group"));
编辑:从 BeautifulSoup 4.4 开始,text
参数被命名为 string
。
关于python - 需要使用 RegEx 和 BeautifulSoup 查找文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421038/