使用selenium

时间:2016-04-18 22:03:34

标签: python html excel selenium

我是一名研究分析师,试图整理数据并进行分析。我需要来自此page 的数据。我需要研磨剂的数据到vanspati Oils(你会在左侧找到它)。我总是遇到这样的问题,我发现selenium能够处理这些东西。但我仍然坚持如何将这些数据下载到Excel中。我需要为每个类别提供一张excel表。 我确切的技术问题是如何解决下载表数据的问题。我做了一些背景研究,并了解如果表具有class_name。from here,则可以提取数据。我看到表格有class="tbldata14 bdrtpg"所以我在我的代码中使用了它。 我收到了这个错误

  

InvalidSelectorException:消息:给定的选择器tbldata14 bdrtpg   无效或不会导致WebElement。

如何下​​载此表格数据?请指出我可以阅读并解决此问题的任何参考资料。 我的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()

driver.get("http://www.moneycontrol.com/stocks/marketinfo/netprofit/bse/index.html")
elem=driver.find_element_by_class_name("tbldata14 bdrtpg")

先谢谢。如果还有另一种简单方法,请建议[我试过复制粘贴太繁琐!]

1 个答案:

答案 0 :(得分:0)

获取您感兴趣的数据可以实现如下,

from selenium import webdriver

url = "http://www.moneycontrol.com/stocks/marketinfo/netprofit/bse/index.html"

# Get table-cells where the cell contains an anchor or text   
xpath = "//table[@class='tbldata14 bdrtpg']//tr//td[child::a|text()]"

driver = webdriver.Firefox()    
driver.get(url)
data = driver.find_elements_by_xpath(xpath)

# Group the output where each row contains 5 elements
rows=[data[x:x+5] for x in xrange(0, len(data), 5)]
for r in rows:
    print "Company {}, Last Price {}, Change {}, % Change {}, Net Profit {}" \
        .format(r[0].text, r[1].text, r[2].text, r[3].text, r[4].text)

这里解释了将数据写入excel文件,