Сканирование Highcharts через python селен (ошибка javascript: Highcharts не определено) - PullRequest
0 голосов
/ 20 февраля 2020

Я хотел бы сканировать графики с веб-сайта. Это график, который показывает тенденцию поиска определенного ключевого слова. Но дело в том, что график является интерактивным. Он появится только при нажатии на ключевое слово в списке. (Когда он появляется, это не новое окно).

На вкладке элемента инструментов разработчика я обнаружил, что это называется highcharts. Можно ли как-нибудь сканировать данные диаграммы с помощью селена?

Использование Beautifulsoup и получение json не будет работать, потому что для диаграммы не назначен URL-адрес .. (как я упоминал ранее, это просто всплывающее окно)

Я бы прикрепил изображение сайта и вкладка элемента.

Изображение # 1 вкладки диаграммы и элемента

Изображение № 2 вкладки диаграммы и элемента

Спасибо! !

(Это корейский веб-сайт, на который нужно зарегистрироваться, поэтому я не буду публиковать URL-адрес веб-сайта)

ОБНОВЛЕНИЕ КОДА

keyword = '괌여행'
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '/html/body/elena-root/elena-wrap/div/div[2]/elena-tool-wrap/div/div/div/div/elena-keyword-planner/div[2]/div[1]/div[1]/div[2]/div/div/div[1]/div/textarea'))).send_keys(keyword)

driver.find_element_by_xpath('/html/body/elena-root/elena-wrap/div/div[2]/elena-tool-wrap/div/div/div/div/elena-keyword-planner/div[2]/div[1]/div[1]/div[3]/button').click()

time.sleep(1)

#driver.find_element_by_xpath('/html/body/elena-root/elena-wrap/div/div[2]/elena-tool-wrap/div/div/div/div/elena-keyword-planner/div[2]/div[1]/div[2]/div[3]/elena-table/div/div/table/tbody/tr[1]/td[2]/elena-keyword').click()

time.sleep(1)

actions = wd.ActionChains(driver)

actions.move_to_element(driver.find_element_by_xpath('/html/body/elena-root/elena-wrap/div/div[2]/elena-tool-wrap/div/div/div/div/elena-keyword-planner/div[2]/div[1]/div[2]/div[3]/elena-table/div/div/table/tbody/tr[1]/td[2]/elena-keyword'))

actions.click()
actions.perform()
time.sleep(3)
driver.switch_to_active_element()
time.sleep(1)

#The following code using Highcharts.charts gives an error "JavascriptException: Message: javascript error: Highcharts is not defined"

d = driver.execute_script('return Highcharts.charts[0].series[0].data')
data = [item[1] for item in data]
print(data)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...