首页 > 解决方案 > 是否有一种特定的方法可以只从 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?

非常感谢您,我在该领域还很新,如果这是非常基本的,对不起。

标签: pythonweb-scrapingbeautifulsoup

解决方案


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

推荐阅读