使用selenium下载数据

2024-09-30 02:31:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一名研究分析员,试图整理数据并进行分析。我需要来自这个page 的数据。我需要vanspati油研磨剂的数据(你可以在左边找到)。我经常遇到这样的问题,我发现硒可以处理这些问题。但我一直不明白如何将这些数据下载到Excel中。我需要一个excel表格为每个类别。 我确切的技术问题是如何解决下载表数据的问题,我做了一点背景调查,了解到如果表有类名from here,则可以提取数据。我看到表有class="tbldata14 bdrtpg",所以我在代码中使用了它。 我有这个错误

InvalidSelectorException: Message: The given selector tbldata14 bdrtpg is either invalid or does not result in a 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")

谢谢前进。还有请建议有没有其他简单的方法[我试过复制粘贴太乏味了!]在


Tags: 数据代码fromimportdriverseleniumpage整理
1条回答
网友
1楼 · 发布于 2024-09-30 02:31:21

获取您感兴趣的数据可以通过以下方式实现:

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文件

相关问题 更多 >

    热门问题