簡體   English   中英

python selenium按類查找元素返回整個網站而不是元素

[英]python selenium find elements by class return whole website instead of element

我正在嘗試使用硒將來自該網站的表格讀取為熊貓數據框。 連結這里

但是,當我嘗試打印出數據Dataframe時,它為我提供了網站上的所有內容,例如頂部部分,如website searchadvance search以及底部部分Disclaimer | Hyperlink Policy | Privacy Policy Disclaimer | Hyperlink Policy | Privacy Policy 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')

由於您沒有使用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)

如果只需要特定元素的HTML代碼,則需要使用以下代碼:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM