2017-02-05 31 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

是的。我是那么做的。我甚至用你的代码重新检查过它。仍然给我'找不到表格' –