硒将数据采集到熊猫数据框

时间:2018-12-14 23:18:04

标签: python pandas selenium web-scraping

这是我第一次尝试用硒刮。

我收集了我想要的东西,但是我想将其传递给pandas数据框以便进行一些计算。

下面的示例代码是我如何获取数据;

(这是财务数据,[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 :(得分:1)

尝试使用.get_attribute('innerHTML')而不是.text


编辑*


似乎您正在尝试将硒对象转换为int()。但是int需要转换字符串(仅包含数字)。

因此,您可以尝试像这样进行转换。

“此示例是关于在Wikipedia上的随机页面上的字段中抓取一个数字;请尝试使其适应您的代码。”

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()