python - 需要使用 RegEx 和 BeautifulSoup 查找文本

标签 python regex python-2.7 web-scraping beautifulsoup

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

<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/

相关文章:

python - BeautifulSoup (bs4) 解析错误

python 基于标准的计数示例

python - NLTK 使用的实际例子

javascript - 将大括号内的所有文本提取到字符串数组中

json - 谷歌数据流作业在 writeToBiqquery 步骤 : 'list' object and 'str' object has no attribute'items' 上失败

python - 如何在 Django 查询集中执行 AND 条件?

python - Pandas value_counts 返回同一值的多行

javascript - javascript和python中的字符串序列相似/差异比

c# - 正则表达式系统的 IndexOutOfRangeException

javascript - 如何在字符串中递归替换字符