удаление данных таблицы с веб-страницы - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь выучить python и португальский, поэтому подумал, что могу убить двух зайцев одним выстрелом.

Вот пример одной из страниц . Я хочу загрузить данные, которые находятся в синих таблицах, поэтому первая такая таблица называется «Представить», следующая таблица называется «Pretérito Perfeito» и т. Д.

Ниже приведен мой код, однако я изо всех сил. Моя переменная результатов содержит данные, которые мне нужны, однако попытка получить точный бит мне не по силам, поскольку у тегов div нет идентификаторов.

Есть ли лучший способ сделать это?

 import requests
 from bs4 import BeautifulSoup

 URL = 'https://conjugator.reverso.net/conjugation-portuguese-verb-ser.html'
 page = requests.get(URL)
 soup = BeautifulSoup(page.content, 'html.parser')
 results = soup.find(id='ch_divSimple')
 mychk = results.prettify()
 tbl_elems = results.find_all('section', class_='wrap-verbs-listing')

Ответы [ 2 ]

1 голос
/ 29 марта 2020

Заменить:

 results = soup.find(id='ch_divSimple')
 mychk = results.prettify()
 tbl_elems = results.find_all('section', class_='wrap-verbs-listing')

С:

results = soup.find("div", attrs={"class": 'blue-box-wrap'})
tbl_elems = results.find_all('ul', class_='wrap-verbs-listing')
1 голос
/ 29 марта 2020

У них нет идентификаторов, но есть классы. Вы можете сделать:

results.find_all("div", "blue-box-wrap")

Где blue-box-wrap - это класс.

Он вернет объект ResultSet длиной 22, поскольку имеется 22 синих таблицы. Вы можете выбрать тот, который вы хотите с индексированием, например, для первого:

blue_tables = results.find_all("div", "blue-box-wrap")
blue_tables[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...