Селен скребет данные в панду - PullRequest
0 голосов
/ 15 декабря 2018

Это моя первая попытка очистки селеном.

Я собрал то, что хочу, но хочу передать его в пандас-фрейм данных, чтобы выполнить некоторые вычисления.

ниже пример кода:как я получаю данные;

(это финансовые данные, а [2] и [3] представляют годы (2016,2017) соответственно)

nf1 = driver.find_element_by_xpath('//*[@id="tbodyMTablo"]/tr[84]/td[2]').text
nf2 = driver.find_element_by_xpath('//*[@id="tbodyMTablo"]/tr[84]/td[3]').text

do_v1 = driver.find_element_by_xpath('//*[@id="tbodyMTablo"]/tr[2]/td[2]').text
do_v2 = driver.find_element_by_xpath('//*[@id="tbodyMTablo"]/tr[2]/td[3]').text

kvb_1 = driver.find_element_by_xpath('//*[@id="tbodyMTablo"]/tr[29]/td[2]').text
kvb_2 = driver.find_element_by_xpath('//*[@id="tbodyMTablo"]/tr[29]/td[3]').text

Это числовые данные, носохраненный как str (вероятно, из-за .text) и int(nf2) или float(nf2) не работал.

Есть ли способ сохранить значения в первую очередь?(без .text возвращается 0)

Как правильно обрабатывать числовые данные и сохранять их в кадре данных?

Заранее спасибо.

1 Ответ

0 голосов
/ 15 декабря 2018

попробуйте использовать .get_attribute ('innerHTML') вместо .text


edit *


Похоже, вы пытаетесь преобразовать объект селена в int (),но int требует строки для преобразования (которая содержит только числа).

Итак, вы можете попытаться преобразовать ее следующим образом.

"В этом примере речь идет об очистке числа внутриполе на случайной странице в Википедии; попробуйте адаптировать его под свой код. "

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://it.wikipedia.org/wiki/Internet#Nascita_del_World_Wide_Web_.281991.29')

scraped = driver.find_element_by_xpath('//span[@class="tocnumber" and contains(text(), "1")]')

print(int(scraped.get_attribute('innerHTML')))

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