2014-03-19 51 views
1

我想從這裏得到的股票的納斯達克「最先進」的文章:http://www.nasdaq.com/extended-trading/premarket-mostactive.aspx(點擊最高級選項卡上)硒具有完全的XPath和Python

什麼是通過所有使用Selenium循環的最佳方式符號並將它們放入Python列表中?我已經想通了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 

..as開始只是爲了看看,如果我能得到一個價值,但它顯然不工作。很抱歉的愚蠢的問題:(

回答

1

包含的元素完整的絕對路徑這些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'] 

希望有幫助。

+0

謝謝。但是,這讓我最活躍e列表,而不是最高級列表..它也使用symbol_links類,但即使它包含在同一個頁面源中也不會顯示出來。想法? – peelers

+0

@peelers只需在獲取符號之前點擊最高級選項卡即可。 – alecxe

+0

這麼簡單,它傷害。謝謝!!! – peelers