gpt4 book ai didi

python - 如何使用 BeautifulSoup 从父标签和子标签中获取文本以放入 DOCX 表中

转载 作者:行者123 更新时间:2023-11-28 16:57:45 24 4
gpt4 key购买 nike

我正在尝试使用 BeautifulSoup 解析来自 google.com/patents 的声明并将它们放入 DOCX 表中。

我已经设法检索到声明,但不幸的是,父 div 标签包含声明的第一部分,子 div-s 是声明其余部分的一部分,如下图所示。

HTML Code

当我运行该程序时,表格中的第一个单元格包含父级和所有子级 div 文本,并且子级 div 传播以下表格单元格。

我想使用父 div 中的文本传播 DOCX 表中的第一个单元格,同时排除子 div,并使用子 div-s 中的文本传播后续单元格。

我已经尝试 .decompose 获取父项的声明,我已经尝试弄清楚如何重命名 child 以放入表格中。

   from bs4 import BeautifulSoup
import requests
from docx import Document
from docx.enum.table import WD_TABLE_DIRECTION

document = Document()

url = 'https://patents.google.com/patent/US7054130?oq=US7654309'

response = requests.get(url)
data = response.text
soup = BeautifulSoup(data, 'html.parser')

claims = soup.select('div .claim-text')

table = document.add_table(rows=1, cols=2, style='Table Grid')

for claim in claims:

if not claim.find('claim-ref'):

try:
print(claim.text + '\n')
cells = table.add_row().cells
cells[0].text = claim.text

# Add space between paragraphs
document.add_paragraph('')

except:

continue

document.save('my_test.docx')

我希望能够使用在父项中找到的声明开头的文本解析声明到 DOCX 表的单元格 1 中,并从单元格中排除子项。 children 应该分别进入自己的牢房。

这是我尝试运行该程序时得到的结果: This is what I get when I try to run the program

这就是我想要实现的目标: This is what I want

我一直无法弄清楚如何将文本与父项和子项分开。

最佳答案

为了避免重复,只需从顶部的 div 中获取整个文本并适本地拆分它,例如:

from bs4 import BeautifulSoup
import requests
from docx import Document

document = Document()
url = 'https://patents.google.com/patent/US7054130?oq=US7654309'
response = requests.get(url)
data = response.text
soup = BeautifulSoup(data, 'html.parser')
claims_section = soup.find('section', itemprop='claims').div.div
table = document.add_table(rows=0, cols=2, style='Table Grid')

for div in claims_section.find_all('div', class_='claim', recursive=False):
div_claim_text = div.find_next('div', class_='claim-text')
lines = [line.strip() for line in div_claim_text.text.splitlines() if line.strip()]

for line in lines:
cells = table.add_row().cells
cells[0].text = line

document.save('my_test.docx')

此方法仅存储独立声明。

关于python - 如何使用 BeautifulSoup 从父标签和子标签中获取文本以放入 DOCX 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com