如何使用 Beautiful Soup 获取 `p` 标签内的文本?

我想获取所有 p 标签并将其存储在列表中,但不幸的是它们之间都有一个


这是内容的样子:


<p>Ich halt mir die Pistole an den Kopf

 <br/>Doch drück' nicht ab, denn ich hab zu viel Angst vor Gott</p>,

 <p>Feinde wurden zu Brüdern

 <br/>Und Brüder wurden zu V-Männern

 <br/>Die beste Gang, in der ich jemals war

 <br/>Me, myself und meine DNA</p>,

我应该看起来像:


[Ich halt mir die Pistole an den Kopf

    Doch drück' nicht ab, denn ich hab zu viel Angst vor Gott, Feinde wurden zu Brüdern

     Und Brüder wurden zu V-Männern

     Die beste Gang, in der ich jemals war

     Me, myself und meine DNA,]

 

那是我当前的代码:


url = requests.get("https://www.myzitate.de/suche/farid-bang/")

z = bs(url.content)

cont = z.find("div", attrs={"id":"cont"})

cont.find_all("p")


牛魔王的故事
浏览 178回答 3
3回答

ABOUTYOU

您可以使用tag.get_text()with 参数strip=True并separator='\n'获得正确的文本:import requestsfrom bs4 import BeautifulSoupurl = 'https://www.myzitate.de/suche/farid-bang/'soup = BeautifulSoup(requests.get(url).content, 'html.parser')for p in soup.select('p'):&nbsp; &nbsp; print(p.get_text(strip=True, separator='\n'))&nbsp; &nbsp; print('-' * 80)印刷:Ich halt mir die Pistole an den KopfDoch drück' nicht ab, denn ich hab zu viel Angst vor Gott--------------------------------------------------------------------------------Feinde wurden zu BrüdernUnd Brüder wurden zu V-MännernDie beste Gang, in der ich jemals warMe, myself und meine DNA--------------------------------------------------------------------------------Wir sind Public EnemyIhr Police AcademyKann nicht tanzen, meine Schultern sind zu breitDu willst mich batteln und frisst dann den Bürgersteig--------------------------------------------------------------------------------Wir kam'n von unten mit Gangsta-RapUnd sind im Endeffekt drei Gs wie das Handynetz--------------------------------------------------------------------------------...and so on.

潇湘沐

这是你要找的吗?ps&nbsp;=&nbsp;[p.get_text()&nbsp;for&nbsp;p&nbsp;in&nbsp;cont.find_all("p")]

MMMHUHU

所有项目都位于可以通过以下id方式z访问的page_soup.find_all('div', {'id': 'z'}):在某些网站中,存在 p 标签的多个实例,因此我通常会搜索 upper class 以确保获得预期的输出。您感兴趣的文本在 中并可p tag通过以下方式检索div_tag.find_all('p')完整代码如下:append_text=[]url = requests.get("https://www.myzitate.de/suche/farid-bang/")page_soup= Soup(url.content)for div_tag in page_soup.find_all('div', {'id': 'z'}):&nbsp; &nbsp; for litag in div_tag.find_all('p'):&nbsp; &nbsp; &nbsp; &nbsp; append_text.append(litag.text)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python