python - 是否有一种特定的方法可以只从 HTML 树中检索所需的信息?包含示例
问题描述
我正在使用 python3.8 和 BeautfiulSoup 4 来解析网站。我想阅读的部分在这里:
<h1 class="pr-new-br">
<a href="/rotring-x-b104743">Rotring</a>
<span> 0.7 Imza Uçlu Kurşun Versatil Kalem 37.28.221.368 </span>
</h1>
我使用此代码从网站上找到它并从中获取文本(soup 是来自网站的 BeautifulSoup 对象的变量):
product_name_text = soup.select("h1.pr_new_br")[0].get_text()
但是,这当然会返回我所有的文本。我想分隔之间的文本<a href>
和之间的文本<span>.
我怎样才能做到这一点?我怎样才能专门针对标签或链接中的href?
非常感谢您,我在该领域还很新,如果这是非常基本的,对不起。
解决方案
get_text 方法有一个参数来分割不同元素的文本。举个例子:
product_name_text = soup.select("h1.pr_new_br")[0].get_text('|')
# You will get -> Rotring|0.7 Imza Uçlu Kurşun Versatil Kalem 37.28.221.368
# Then you can split with same symbol and you would have list of different el's texts
推荐阅读
- android-fragments - 从 ListView 当前项观察 LiveData
- java - 我可以拥有一个对象类型的 ArrayList,其中包含指向 Java 中对象的指针列表吗?
- python - 字段名称和帮助文本在 Django 中以多种形式消失
- ansible - 替代的 ansible 语法
- javascript - 如何修复错误:JavaScript 错误:TypeError: undefined is not an object (evalating 'this.context.clearRect') 在第 24 行
- python - SageMath:在 dochtml 阶段运行`make`以 ImportError 结束
- c++ - 如何在保留角点的同时简化折线?
- mysql - 使用 In 命令和 group by 子句
- laravel - 格式化日期并验证
- flutter - 颤振嵌套的手势检测器不起作用