Просто я сделаю это следующим образом.
import pandas as pd
df = pd.read_html("https://ballotpedia.org/Alabama_Supreme_Court")[2]["Judge"]
print(df.to_list())
Вывод:
['Brad Mendheim', 'Kelli Wise', 'Michael Bolin', 'William Sellers', 'Sarah Stewart', 'Greg Shaw', 'Tommy Bryan', 'Jay Mitchell', 'Tom
Parker']
Теперь вернемся к исходному issue
, чтобы решить, как я лично я люблю исправлять реальные проблемы, не переходя к альтернативным решениям.
есть разница между find
, который вернет только первое element
, но find_all
вернет list
из elements
. Проверьте Документация .
импортировать напрямую from bs4 import BeautifulSoup
вместо import bs4
, поскольку это DRY Принцип из Python.
Оставьте bs4
для обработки контента, поскольку это одна из его задач на заднем плане. поэтому вместо r.text
используйте r.content
Теперь мы углубимся в HTML
, чтобы выбрать его:
from bs4 import BeautifulSoup
import requests
r = requests.get("https://ballotpedia.org/Alabama_Supreme_Court")
soup = BeautifulSoup(r.content, 'html.parser')
print([item.text for item in soup.select(
"table.wikitable.sortable.jquery-tablesorter a")])
Теперь вам нужно прочитать о CSS -Выбор
Выход:
['Brad Mendheim', 'Kelli Wise', 'Michael Bolin', 'William Sellers', 'Sarah Stewart', 'Greg Shaw', 'Tommy Bryan', 'Jay Mitchell', 'Tom Parker']