#python #pandas #web-scraping #beautifulsoup
Вопрос:
Я пытаюсь загрузить данные, но он возвращает пустой список, не зная, что здесь происходит не так… Я добавляю тот же сценарий, который нашел в других учебниках
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = ' https://en.wikipedia.org/wiki/All-time_Olympic_Games_medal_table'
result = requests.get(url)
soup = BeautifulSoup(result.content, 'html.parser')
# print(soup.title)
content = soup.find_all('table', class_='wikitable sortable jquery-tablesorter')
print(content)
Комментарии:
1. Доступны ли этот класс и таблицы по этому URL-адресу?
2. Похоже, что данный URL-адрес не содержит никакой таблицы.
Ответ №1:
Ответ на основе обновленного URL-адреса.
Вы выбираете все таблицы, используя find_all()
. В URL-адресе вам нужно выбрать только таблицу медалей, а не все.
Вы можете выбрать таблицу медалей с content.find('table', class_='wikitable')
помощью .
Здесь я вытащил все <tr>
s из таблицы и сохранил их в trs
переменной. Вы можете перебирать trs
список и извлекать нужные вам данные.
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = 'https://en.wikipedia.org/wiki/All-time_Olympic_Games_medal_table'
result = requests.get(url)
soup = BeautifulSoup(result.text, 'html.parser')
content = soup.find('table', class_='wikitable')
trs = content.findAll('tr')
Комментарии:
1. но это не дает мне нужных таблиц, которые мне нужно использовать для аналитики
2. Какие столы ? Где вы видите таблицы на этой веб-странице ?
3. извините, URL был другим… Я использовал конечную точку api в своем вопросе.. en.wikipedia.org/wiki/All-time_Olympic_Games_medal_table
4. Пожалуйста, обновите свой вопрос, указав правильный URL-адрес. Я обновил свой ответ. Пожалуйста, проверьте.
5. Спасибо, Рам… Я нашел решение.
Ответ №2:
print(soup)
показывает, что url
это было успешно очищено. Ошибка в content = ...
строке — указанный URL-адрес не содержит table
. Вот print(soup)
результат:
{«тип»:»стандарт»,»название»:»летние Олимпийские игры»,»displaytitle»:»летние Олимпийские Games»,»namespace»:{«id»:0,»text»:»»},»wikibase_item»:»Q159821″,»titles»:{«canonical»:»Summer_Olympic_Games»,»normalized»:»летние Олимпийские игры»,»дисплей»:»летние Олимпийские игры»},»pageid»:27566,»Ленфильм»:{«источник»:»https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Olympic_rings_without_rims.svg/320px-Olympic_rings_without_rims.svg.png»,»width»:320,»height»:148},»originalimage»:{«source»:»https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Olympic_rings_without_rims.svg/342px-Olympic_rings_without_rims.svg.png»,»width»:342,»height»:158},»lang»:»en»,»dir»:»ltr»,»revision»:»1035750198″,»tid»:»667065b0-eedc-11eb-83d5-e721135a5a1e»,»timestamp»:»2021-07-27T13:12:59Z»,»description»:»Международный мультиспорт event»,»description_source»:»local»,»content_urls»:{«desktop»:{«page»:»https://en.wikipedia.org/wiki/Summer_Olympic_Games»,»revisions»:»https://en.wikipedia.org/wiki/Summer_Olympic_Games?action=history»,»edit»:»https://en.wikipedia.org/wiki/Summer_Olympic_Games?action=edit»,»talk»:»https://en.wikipedia.org/wiki/Talk:Summer_Olympic_Games»},»mobile»:{«page»:»https://en.m.wikipedia.org/wiki/Summer_Olympic_Games»,»revisions»:»https://en.m.wikipedia.org/wiki/Special:History/Summer_Olympic_Games»,»edit»:»https://en.m.wikipedia.org/wiki/Summer_Olympic_Games?action=edit»,»talk»:»https://en.m.wikipedia.org/wiki/Talk:Summer_Olympic_Games»}},»extract»:»The Summer Olympic Games, also known as the Games of the Olympiad, are a major international multi-sport event normally held once every four years. The Games were first held in 1896 in Athens, Greece, and are currently being held in 2021 in Tokyo, Japan. The International Olympic Committee (IOC) organises the Games and oversees the host city’s preparations. In each Olympic event, gold medals are awarded for first place, silver medals are awarded for second place, and bronze medals are awarded for third place; this tradition began in 1904. The Winter Olympic Games were created out of the success of the Summer Olympics.»,»extract_html»:»
Летние Олимпийские игры, также известные как Игры Олимпиады, являются крупным международным мультиспортивным мероприятием, которое обычно проводится раз в четыре года. Игры впервые были проведены в 1896 году в Афинах, Греция, и в настоящее время проводятся в 2021 году в Токио, Япония. Международный олимпийский комитет (МОК) организует Игры и контролирует подготовку города-организатора. В каждом олимпийском соревновании золотые медали присуждаются за первое место, серебряные медали присуждаются за второе место, а бронзовые медали присуждаются за третье место; эта традиция началась в 1904 году. Зимние Олимпийские игры были созданы на основе успеха летних Олимпийских игр.
«}
Комментарии:
1. Мне нужны эти таблицы по странам для аналитики