#python #selenium #web-scraping
#python #селен #веб-очистка
Вопрос:
Я пытаюсь получить текст из каждой строки на следующем графике.
Вот что я попробовал:
driver = webdriver.Chrome('d:/chromedriver.exe')
driver.get('https://dph.georgia.gov/covid-19-daily-status-report')
frame = driver.find_element_by_css_selector('#covid19dashdph > iframe')
driver.switch_to.frame(frame)
element = driver.find_element_by_xpath('//*[@id="root"]/div/div[3]/div[4]/div/div[4]/div/div')
print(element.text) # return ''
# action = ActionChains(driver)
# action.move_by_offset(1, 1)
Мой вопрос:
- как получить текстовое значение, потому что я видел текст на исходной странице
- Как перемещать курсор мыши на одну строку за другой, чтобы получить следующий номер ежедневного обращения.
Ответ №1:
Я просто нажал на тег svg и напечатал его значение, которое было в теге на сайте.
driver.get('https://dph.georgia.gov/covid-19-daily-status-report')
frame=WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#covid19dashdph > iframe')))
driver.switch_to.frame(frame)
svg=WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, " div.MuiBox-root.jss326 > div > svg")))
svg.click()
element=WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.MuiBox-root.jss326 > div > div")))
print(element.text)
Импорт
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
Выводит
07 июня 20 подтвержденных случаев 524 7-дневная скользящая средняя 720,7
HTML-тег состоит из:
<div class="c3-tooltip-container" style="position: absolute; pointer-events: none; display: none; top: 529.5px; left: 74.5px;">
<table class="c3-tooltip">
<tbody>
<tr><th colspan="2">07Jun20</th></tr>
<tr class="c3-tooltip-name--Confirmed-Cases">
<td class="name"><span style="background-color:#33a3ff"></span>Confirmed Cases</td>
<td class="value">524</td></tr>
<tr class="c3-tooltip-name--37 -day-Moving-Average">
<td class="name"><span style="background-color:#ffcc32"></span>7-day Moving Average</td>
<td class="value">720.7</td>
</tr></tbody></table></div>
Комментарии:
1. Большое спасибо, и я многому научился у вас! Два последующих вопроса: 1) зачем нажимать тег ‘svg’, чтобы активировать область графика?; 2) как мне перебирать все столбцы и получать числа по дням?
2. Тег внизу нуждается в щелчке или перемещении, и он повторно заполняет его собственное значение. я просто щелкнул svg, чтобы сделать демонстрационное значение.