2017-02-05 40 views
0

元素我想使用硒從這個網站將表讀入一個數據幀的大熊貓。 Link here蟒蛇硒找到類返回的整個網站,而不是元素

然而,當我嘗試打印Dataframe出來,它給我的網站上的所有內容,如頂部像website searchadvance search,以及底部Disclaimer | Hyperlink Policy | Privacy Policy©2010 Hong Kong Exchanges and Clearing Limited...

,而不僅僅是表。不知道這裏有什麼問題。

url = r'https://www.hkex.com.hk/eng/market/sec_tradinfo/stockcode/eisdeqty.htm' 


path_to_chrome_driver = r'C:\chromedriver.exe' 
driver = webdriver.Chrome(executable_path=path_to_chrome_driver) 
driver.get(url) 
driver.find_element_by_class_name('table_grey_border').find_element_by_tag_name('tbody') 
z = pandas.read_html(driver.page_source, flavor='bs4') 

print(z) 

注意:我也嘗試了下面的代碼,但結果仍然相同。

driver.find_element_by_class_name('table_grey_border') 

回答

0

當你不使用從find_element_by_class_name的返回值,你不會看到這些結果,您需要使用您的find_element_by_class_name的返回值。

其實你使用driver.page_source這是整個html。

更改此:

driver.find_element_by_class_name('table_grey_border').find_element_by_tag_name('tbody') 
z = pandas.read_html(driver.page_source, flavor='bs4') 

要這樣:

res = driver.find_element_by_class_name('table_grey_border').find_element_by_tag_name('tbody') 
print (res) 
+0

@omri_sasdon我得到了一個TypeError:雖然不能讀取類型'WebElement''錯誤信息的對象。在下面的例外中被忽略的異常:> ' –

+0

@jakewong,這是因爲它不是html,請嘗試打印res以查看返回的值。 –

+0

我使用了'res.get_attribute('outerHTML')',但仍然無法將它饋送到熊貓中以檢索表格。 –

0

如果你想要的只是一個特定的元素HTML代碼,你需要使用下面的代碼:

driver.find_element_by_class_name('table_grey_border').find_element_by_tag_name('tbody').get_attribute('outerHTML') 
+0

我仍然無法將每個行讀入'pandas Dataframe'。它現在告訴我,沒有發現表格 –

+0

您是否使用'z = pandas.read_html(driver.find_element_by_class_name('table_grey_border')。find_element_by_tag_name('tbody')。get_attribute('outerHTML'),flavor ='bs4') '? – Andersson

+0

是的。我是那麼做的。我甚至用你的代碼重新檢查過它。仍然給我'找不到表格' –