Selenium WebDriver возвращает пустой DataFrame при очистке CoinGecko в безголовом режимеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Selenium WebDriver возвращает пустой DataFrame при очистке CoinGecko в безголовом режиме

Сообщение Anonymous »

Я пытаюсь получить данные о рынке биткойнов из CoinGecko с помощью Selenium в безголовом режиме, но скрипт возвращает пустой DataFrame. Строки таблицы не обнаруживаются, хотя я добавил время ожидания. Вот упрощенная версия кода, который я использую для настройки WebDriver, перехода на страницу и извлечения данных таблицы с помощью XPath. Соответствующие части журнала указывают на то, что запросы выполняются правильно, но элементы не найдены. Что может быть причиной этой проблемы и как обеспечить правильную очистку данных таблицы в автономном режиме?
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import pandas as pd
import time

# Path to your ChromeDriver
chrome_driver_path = 'C:\\Users\\hamid\\OneDrive\\Desktop\\chromedriver-win64\\chromedriver.exe'

# Set up headless mode
options = Options()
options.headless = True
options.add_argument("--window-size=1920,1080")

# Set up the WebDriver
driver = webdriver.Chrome(executable_path=chrome_driver_path, options=options)

# Navigate to the CoinGecko Bitcoin page
driver.get('https://www.coingecko.com/en/coins/bitcoin')

# Wait for the page to load
time.sleep(5)

# Extract data from the page
rows = driver.find_elements(By.XPATH, '//table[@class="table"]/tbody/tr')
market_data = []

for row in rows:
exchange = row.find_element(By.XPATH, './/td[2]/a').text
pair = row.find_element(By.XPATH, './/td[3]/a/b').text
price = row.find_element(By.XPATH, './/td[4]/span').text
volume_24h = row.find_element(By.XPATH, './/td[5]/span').text
volume_percentage = row.find_element(By.XPATH, './/td[6]').text
category = row.find_element(By.XPATH, './/td[7]').text
updated = row.find_element(By.XPATH, './/td[8]').text

market_data.append({
'exchange': exchange,
'pair': pair,
'price': price,
'volume_24h': volume_24h,
'volume_percentage': volume_percentage,
'category': category,
'updated': updated
})

# Close the WebDriver
driver.quit()

# Convert to DataFrame
df = pd.DataFrame(market_data)
print(df)

Когда я запускаю скрипт, я получаю следующий результат:
Empty DataFrame
Columns: []
Index: []


Подробнее здесь: https://stackoverflow.com/questions/786 ... headless-m
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»