Использование селена для извлечения данных с веб-страницы - не получение всех данных

Я пытаюсь получить данные (название монеты, цену, капитализацию монетного рынка и оборотное предложение) с сайта coinmarketcap.com, но когда я запускаю приведенный ниже код, я получаю только 11 имен монет. Кроме того, я не могу получить другие данные. Я пробовал несколько вариантов, но ни один не увенчался успехом. Моя цель - хранить данные в фрейме данных, чтобы я мог их анализировать.

driver = webdriver.Chrome(r'C:\Users\Ejer\PycharmProjects\pythonProject\chromedriver')
driver.get('https://coinmarketcap.com/')

Crypto = driver.find_elements_by_xpath("//div[contains(concat(' ', normalize-space(@class), ' '), 'sc-16r8icm-0 sc-1teo54s-1 lgwUsc')]")
#price = driver.find_elements_by_xpath('//td[@class = "cmc-link"]')
#coincap = driver.find_elements_by_xpath('//td[@class = "DAY"]')

CMC_list = []
for c in range(len(Crypto)):
    CMC_list.append(Crypto[c].text)
print(CMC_list)

#driver.get('https://coinmarketcap.com/')
#print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//table[contains(@class, 'cmc-table')]//tbody//tr//td/a//p[@color='text']")))[:50]])

driver.close()
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте эту строку кода, чтобы получить все значения на странице:

cryptos = [name.text for name in driver.find_elements_by_xpath('//td[3]/a[@class = "cmc-link" and starts-with(@href, "/currencies/")]//p[@color = "text"]')]

Спасибо за подсказку, но как вы узнали, что это правильный класс? Я проверил источник и увидел эту ссылку cmc, но не уверен, что это относится ко всем монетам. Другое дело, я вижу, что имена включают символ Bitcoin/nBTC, есть ли способ получить только имя?

Dfhaa_DK 13.12.2020 21:58

когда я выбираю "копировать xpath", я получаю это //*[@id = "__next"]/div/div[2]/div/div/div[2]/table/tbody/tr[1‌​]/td [3]/а

Dfhaa_DK 13.12.2020 22:06

@Dfhaa_DK, попробуйте обновить. Я не знал точно - просто попробовал несколько предикатов, пока не получил требуемый результат

JaSON 13.12.2020 22:48

Другие вопросы по теме