соскоб с селеном на столе Dynamic c - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь очистить таблицу от динамического c веб-сайта (он обновляет информацию каждые 10 секунд, я полагаю) и загрузить его в фрейм данных panda, но я не могу пройти первый этап получения первый столбец кто-то может посоветовать, что я делаю не так? спасибо.

# import libraries
import urllib.request
from bs4 import BeautifulSoup
from selenium import webdriver
import time
import pandas as pd

urlpage = 'https://new.cryptoxscanner.com/binance/live'

driver = webdriver.Chrome(executable_path=r"C:\Users\xxxxx\Desktop\chrome\chromedriver.exe")

driver.get(urlpage)
time.sleep(10)
ticker = driver.find_element_by_xpath('//*[@id="scroll-source-1"]/table/tbody/tr[2]')

1 Ответ

0 голосов
/ 16 февраля 2020

Во-первых, вам нужно подождать, пока данные не будут найдены, используйте .visibility_of_all_elements_located. Вы можете использовать этот локатор для ожидания:

//table[contains(@class, "table-sm")]//a

После того, как все данные найдены, вы можете извлечь данные таблицы. Попробуйте следующий код:

driver.get('https://new.cryptoxscanner.com/binance/live')

#UPDATED HERE
option = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//select[contains(., "All")]'))))
option.select_by_visible_text('All')

WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, '//table[contains(@class, "table-sm")]//a')))
data = driver.find_element_by_class_name('table-responsive')
print(data.text)

После импорта:

#UPDATED HERE
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...