我正在尝试从此处获取纳斯达克“最先进”股票列表:http://www.nasdaq.com/extended-trading/premarket-mostactive.aspx(单击“最先进”选项卡)
使用Selenium遍历所有符号并将它们放入Python列表的最佳方法是什么?我已经找到了第一个Symbol的XPATH:
/html/body/div[4]/div[3]/div/div[7]/div[2]/table/tbody/tr[2]/td/div/h3/a
但不确定从那里去哪里。我尝试过:
element=driver.find_elements_by_xpath("/html/body/div[4]/div[3]/div/div[7]/div[2]/table/tbody/tr[2]/td/div/h3/a")
print element.text
..作为一个开始,只是看我是否可以获得价值,但这显然行不通。很抱歉这个愚蠢的问题:(
最佳答案
这些包含指向元素的完整绝对路径的xpath非常脆弱。
依靠类名(//div[@class="symbol_links"]
):
from selenium.webdriver.firefox import webdriver
driver = webdriver.WebDriver()
driver.get('http://www.nasdaq.com/extended-trading/premarket-mostactive.aspx')
# choose "Most Advanced" tab
advanced_link = driver.find_element_by_id('most-advanced')
advanced_link.click()
# get the symbols
print [symbol.text for symbol in driver.find_elements_by_xpath('//div[@class="symbol_links"]') if symbol.text]
driver.close()
印刷品:
[u'RNA', u'UBIC', u'GURE', u'DRTX', u'DSLV', u'YNDX', u'QIWI', u'NXPI', u'QGEN', u'ZGNX']
希望能有所帮助。