Почему я не могу извлечь текст с помощью .text в beautifulsoup - PullRequest
1 голос
/ 26 мая 2020

Когда я пытаюсь извлечь весь свой текст в теги 'th', я получаю эту ошибку - объект ResultSet не имеет атрибута 'text' и et c. Как вызвать текст в теге th? В противном случае в теге 'th' у меня есть тег 'a' (который мне нужен для извлечения текста), но если я наберу 'country.a', я получу тот же результат - объект ResultSet не имеет атрибута 'a' и et c.

код:

from urllib.request import Request
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = Request('https://en.wikipedia.org/wiki/Template:COVID-19_pandemic_data', headers={'User-Agent': 'Mozilla/5.0'})
# Opening up connection, grabbing the page
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
# html parser
page_soup = soup(page_html, "html.parser")
# grabs table data
containers = page_soup.find("table", {"id": "thetable"})
# grabs country names
country = containers.find_all("th", {"scope":"row"}).text

1 Ответ

2 голосов
/ 26 мая 2020

Если все, что вам нужно, это таблица на этой странице, ваш код на самом деле не нужен, просто используйте pandas:

import pandas as pd
table = pd.read_html('https://en.wikipedia.org/wiki/Template:COVID-19_pandemic_data')
table[0]

Результатом является все в этой таблице, включая примечания. Отсюда просто используйте стандартные методы pandas, чтобы извлечь то, что вам нужно.

...