首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能连接从美景汤中的html解析中获得的元素?

我怎样才能连接从美景汤中的html解析中获得的元素?
EN

Stack Overflow用户
提问于 2019-09-13 15:01:05
回答 1查看 34关注 0票数 1

我有多个html文件,如下所示。

代码语言:javascript
复制
<footnotes>
    <footnote id="F1">content1</footnote>
    <footnote id="F2">content2</footnote>
    <footnote id="F3">content3</footnote>
    <footnote id="F4">content4</footnote>
</footnotes>

请注意,不同html文件中脚注in的数量可以不同,范围从0到数百。我希望ids和内容出现在csv文件中具有"/“分区的同一单元中。这将类似于"F1 content1/F2 content2/F3 content3/F4 content4“

下面的代码是我所有的。

代码语言:javascript
复制
import csv
from bs4 import BeautifulSoup

with open('output.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile, )
    soup = BeautifulSoup(doc, 'htmparser') #Let's say doc has the html.
    Footnotes = soup.select('footnotes')
    Footnotes = '/'.join(Footnotes)

writer.writerow(Footnotes.text)

困难的部分是解析ids和内容,并将它们连接起来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-13 15:06:56

要使用BeautifulSoup从元素中获取id,可以查看.attrs属性,它是一个字典。对于文本,您了解.text。因此:

代码语言:javascript
复制
cell = '/'.join(f"{f.attrs['id']} {f.text}" for f in soup.select('footnote'))
writer.writerow([cell])

注意:Python3.6附带了f""语法。对于较旧的版本,请使用:

代码语言:javascript
复制
"{} {}".format(f.attrs['id'], f.text)

此外,这还假设所有脚注都有一个id属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57918734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档