我有多个html文件,如下所示。
<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“
下面的代码是我所有的。
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和内容,并将它们连接起来。
发布于 2019-09-13 15:06:56
要使用BeautifulSoup从元素中获取id,可以查看.attrs属性,它是一个字典。对于文本,您了解.text。因此:
cell = '/'.join(f"{f.attrs['id']} {f.text}" for f in soup.select('footnote'))
writer.writerow([cell])注意:Python3.6附带了f""语法。对于较旧的版本,请使用:
"{} {}".format(f.attrs['id'], f.text)此外,这还假设所有脚注都有一个id属性。
https://stackoverflow.com/questions/57918734
复制相似问题