python - BeautifulSoup:获取标签文本到某个标签
问题描述
我想获取 HTML 页面上所有显示的文本,直到某个标签被命中。例如,我想获取页面上所有显示的文本,直到命中 id 为“end_content”的标签。
有没有办法用 BeautifulSoup 做到这一点?这将类似于 soup.get_text() 方法,除了它会在遇到 ID 为“end_content”的标签后停止获取文本。
解决方案
我会做以下事情:
html = (
'<h1>HEY!</h1>'
'<div>'
'How are'
'<h2>you?</h2>'
'<div id="end_content">END</div>'
'</div>'
'Some other text'
)
soup = BeautifulSoup(html, 'lxml')
>>> soup.select_one('#end_content').find_all_previous(string=True)[::-1]
['HEY!', 'How are', 'you?']
推荐阅读
- sql - SQL - 在 WITH 语句之后使用 IF 语句
- javascript - 浏览器扩展禁用 JavaScript 以获取客户端 IP 地址
- python - 列表理解仅在一个索引中访问列表中的嵌套列表
- vue.js - 有没有办法设置mixin数据?
- reactjs - 反应选择标签:第二个选择标签选项值取决于第一个选择标签选择的值
- javascript - 如何从缓存中加载不同的文件?
- api - 重新渲染 Vue JS 组件
- java - spark提交java.lang.IllegalArgumentException:无法从空字符串创建路径
- forms - Puppeteer:单击网站上的按钮不起作用
- android - 如何在 Jetpack 中的 ModelDrawer 布局中添加 FloatingActionButton 组合在 android