【发布时间】:2020-08-08 16:44:24
【问题描述】:
我尝试仅从 selectet 标记中获取文本,例如:
<div class="article-container">
<p>tekst 1</p> <!-- this tag -->
<p>none</p>
<p>tekst 2</p> <!-- this tag -->
<p>none</p>
<p>tekst 3</p> <!-- this tag -->
<p>none</p>
<p>tekst 4</p> <!-- this tag -->
</div>
我尝试获取“tekst 1 tekst 2 tekst 3 tekst 4”(但标签中的文字完全不同,“tekst 1”等只是示例),
我的简单python函数如下所示:
def get_article(url):
page = requests.get(str(url))
soup = BeautifulSoup(page.text, 'html.parser')
article = soup.find(class_='article-container')
article_only = article.text
return(article_only)
但他返回了整个文本。有没有办法像上面的例子一样使用 BS 来获取选定的元素?
【问题讨论】:
-
你想如何选择标签?您只想要
p标签内的文本吗?none是什么? -
首先,
article-container类在您的 html 中不存在。然后,您是否要查找包含单词tekst的标签,或者您是否想要不为空的标签或最终两个标签中的一个(奇数) -
我只想从标签 1、3、5、7 中获取文本,但我在其中添加了评论。
-
对不起,我更正了我在上述问题中的错误。
标签: python beautifulsoup