BeautifulSoup4 – Как мне получить детей следующего брата или сестры?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 BeautifulSoup4 – Как мне получить детей следующего брата или сестры?

Сообщение Anonymous »


Я пытаюсь запрограммировать приложение, которое будет собирать некоторые финансовые формы из SEC, которые часто имеют другую структуру, что может усложнить задачу. В результате я пытаюсь обобщить свой парсер. Многие мои проблемы сводятся к тому, чтобы найти местоположение этого текста, а затем взять следующий доступный текст. Это означает проверку всех дочерних элементов на наличие текста, а если его нет, то перемещение DOM к следующему родителю(ям) и последующую проверку их дочерних элементов. Однако у меня возникли проблемы с захватом детей следующего родителя для анализа. Этот вопрос сводится к следующему: «Как мне получить детей следующего брата или сестры?»

Мой код

запросы на импорт из bs4 импорт BeautifulSoup импортировать повторно заголовки = { 'Агент пользователя': '[ВАША ЭЛЕКТРОННАЯ ПОЧТА]', «Принять-кодирование»: «gzip, выкачать», «Хост»: «www.sec.gov» } url = 'https://www.sec.gov/Archives/edgar/data ... 132023.htm' r = Requests.get(url, заголовки=заголовки) суп = BeautifulSoup(r.content, 'lxml') name_reporting_person = Нет report_person_found = Ложь report_person_location = Soup.find('td', string=re.compile('ИМЯ ЛИЦА, СООБЩАЮЩЕГО')) # Попробуйте всех братьев и сестер для элемента в report_person_location.next_siblings: print("ТЕКСТ: " + элемент.текст) если element.text != ' ' или element.text != '': name_reporting_person = element.text report_person_found = Истина перерыв родитель = report_person_location.parent.nextSibling пока не report_person_found: # В противном случае попробуйте детей следующих родителей - ПРОБЛЕМА ЗДЕСЬ. .дети не допускаются для элемента в родительском.детях: если element.text != ' ' или element.text != '': print("ТЕКСТ: " + элемент.текст) name_reporting_person = element.text report_person_found = Истина перерыв родитель = родительский.next_sibling Включить HTML (2 примера):
1   1   ИМЯ ЛИЦА, СООБЩАЮЩЕГО ОТЧЕТ                     RC VENTURES LLC   2  1&# 8194;  
 Имена лиц, сообщивших

 

 Bain Capital Life Sciences Fund II, LP
 2
Коротко говоря, HTML сильно различается в зависимости от страницы, но я считаю, что его по-прежнему можно анализировать с использованием родительских и дочерних элементов, но дочерние элементы у меня не работают.

Я получаю неразрешенную ошибку Неразрешенная ссылка на атрибут «дети» для класса «PageElement» . Я не знаю, что делать, поскольку findChildren() и .children не распознаются. Как я могу получить дочерние элементы каждого из следующих родителей? Я знаю, что мне не нужна рекурсия, но find_all(recursive=False) тоже не распознается. Что мне не хватает? Спасибо
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»