Я пытаюсь использовать BeautifulSoup для анализа заявок на google.com/patents и помещения их в таблицу DOCX.
Мне удалось получить утверждения, но, к сожалению, родительский тег div имеет первую часть утверждения, а дочерние div-ы являются частями остальной части утверждения, как показано на рисунке ниже.
Когда я запускаю программу, в первой ячейке таблицы есть родительский элемент и все дочерние элементы div-текста, а дочерние элементы div распространяют следующие ячейки таблицы.
Я хотел бы распространить первую ячейку в таблице DOCX с текстом из родительского div, исключая дочерние div, и следующие ячейки с текстом из дочерних div.
Я пытался. Разобрать претензию, чтобы получить родителя,
Я попытался выяснить, как переименовать детей, чтобы положить в таблицу.
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')
Я хочу иметь возможность анализировать заявки с текстом из начала заявки, найденной в родительском элементе, в ячейку 1 таблицы DOCX и исключать дочерние элементы из этой ячейки. Дети должны идти в свою камеру соответственно.
Вот что я получаю, когда пытаюсь запустить программу:
Вот чего я хочу добиться:
Мне не удалось понять, как отделить текст от родителя и детей.