![](/img/trans.png)
[英]Dynamic website find element by class name and execute onclick method associated with the class in Python with Selenium and Chrome
[英]python selenium find elements by class return whole website instead of element
我正在尝试使用硒将来自该网站的表格读取为熊猫数据框。 连结这里
但是,当我尝试打印出数据Dataframe
时,它为我提供了网站上的所有内容,例如顶部部分,如website search
, advance 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.