【发布时间】:2022-11-14 05:33:06
【问题描述】:
来源 - 博客文章 URL
我想将标题标签的内部文本和该标签内的正文复制到一个看起来像这样的表输出中
H2;{H2 tag inner tex}; {p tag(s) inner text}
H3;{H2 tag inner tex}; {p tag(s) inner text}
H2;{H2 tag inner tex}; {p tag(s) inner text}
H3;{H2 tag inner tex}; {p tag(s) inner text}
H4;{H2 tag inner tex}; {p tag(s) inner text}
...
需要H2、H3、H4标签的内容 这些标签中可能有多个段落,所以用新行分隔它们会很棒。
BeautifulSoup 可以做到这一点吗?
我可以取出标签的内部文本,但不知道如何取出 p 标签的内部文本,尤其是当它们不止一个时。或者对其进行格式化,以便我可以保存为 CSV。
from bs4 import BeautifulSoup
import requests
website = requests.get('https://venngage.com/blog/landing-page-examples/')
preString = {'h1': '', 'h2': '\t', 'h3':'\t\t', 'h4':'\t\t\t'}
soup = BeautifulSoup(website.content, 'html.parser')
tags = soup.find_all(['h1', 'h2', 'h3'])
for soups in tags:
preStr = preString[soups.name] if soups.name in preString else ''
print(preStr+soups.string)
在此先感谢您的帮助。
【问题讨论】:
-
是的,你可以实现这一点(有和没有 bs4),但到目前为止你尝试了什么?该问题需要足够的代码来实现最小的可重现示例:stackoverflow.com/help/minimal-reproducible-example
-
感谢您的回复 - 用我尝试过的内容更新了我的帖子
-
看起来你很接近这个:
p_tags = soup.find_all(['p'])会得到这个。 -
谢谢 - 是的,我正在努力解决的问题是如何将其格式化为如上所述的表格输出形式
标签: python web-scraping beautifulsoup