#python
#python
Вопрос:
Python не возвращает ничего, но таблица действительно существует. Я проверил веб-сайт и увидел тег table.
from bs4 import BeautifulSoup
import requests
url='https://coinmarketcap.com/currencies/bitcoin/historical-data/'
r=requests.get(url)
url=r.content
soup = BeautifulSoup(url,'html.parser')
tab=soup.find("table",{"class":"table"})
print(tab)
Комментарии:
1. Может быть, таблица динамически вставляется в HTML-документ?
Ответ №1:
Таблица существует, но она не относится к классу table
. Простое удаление параметра {"class":"table"}
позволит вам распечатать таблицу.
tab=soup.find("table")
print(tab)
Обратите внимание, что на веб-странице может быть несколько таблиц, которые вы также можете использовать soup.find_all
.
for table in soup.find_all("table"):
print(table)
Поскольку кажется, что историческая ежедневная таблица отображается динамически, вы можете использовать фреймворки, такие как Selenium, для доступа к таблице. Но было бы намного проще обрабатывать данные, полученные непосредственно из их API.
Комментарии:
1. спасибо. да, так как есть несколько таблиц.. Я не могу получить таблицу, которую я хочу … т. е. историческую ежедневную таблицу… Я уже использовал soup.find_all.. Я могу получить другие таблицы, но не могу получить историческую ежедневную таблицу
2. @button Похоже, что эта таблица отображается динамически, но я нашел URL -адрес для API для прямой выборки данных, где
time_end
иtime_start
представляют время начала и окончания. Вы можете получить данные более напрямую, отправив запрос GET к этому API.3. спасибо. Ваш API работает. Я нашел только официальный API, но бесплатная версия не предоставляет исторические данные. coinmarketcap.com/api/pricing Ваш API хорош. Спасибо большое.
4. Пожалуйста. Не могли бы вы принять ответ? Спасибо.