[英]Error when getting website table data using python selenium - Multiple tables and Unable to locate element
我正在嘗試從巴西股票市場(BMF BOVESPA)獲取信息。 該網站有幾個表,但是我的代碼無法獲取它們。
下面的代碼旨在從表“AçõesemCirculaçãono Mercado”中獲取所有數據->該網頁中的最后一個表。
我嘗試了以下方法,但沒有一個適合我:
內容= browser.find_element_by_css_selector('// div [@ id =“ div1”]')
和
表= browser.find_element_by_xpath(('// * [@ id =“ div1”] / div / div / div 1 / table / tbody'))
預先感謝您提出我的問題。
from selenium import webdriver
from time import sleep
url = "http://bvmf.bmfbovespa.com.br/cias-Listadas/Empresas-
Listadas/ResumoEmpresaPrincipal.aspx?codigoCvm=19348&idioma=pt-br"
browser = webdriver.Chrome()
browser.get(url)
sleep(5) #wait website to reload
content = browser.find_element_by_css_selector('//div[@id="div1"]')
可以在所附圖片中找到HTML
另外,下面的代碼也可以到達同一網站
url = "http://bvmf.bmfbovespa.com.br/cias-Listadas/Empresas-Listadas/BuscaEmpresaListada.aspx?idioma=pt-br"
Ticker='ITUB4'
browser = webdriver.Chrome()
browser.get(url)
sleep(2)
browser.find_element_by_xpath(('//*[@id="ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_txtNomeEmpresa_txtNomeEmpresa_text"]')).send_keys(Ticker)
browser.find_element_by_xpath(('//*[@id="ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnBuscar"]')).click();
content = browser.find_element_by_id('div1')
那里的Hii
Selenium提供了以下方法來查找頁面中的元素:
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
為什么您的代碼不起作用? 因為您沒有使用正確的正確代碼來定位元素
您正在CSS選擇器中使用xpath
content = browser.find_element_by_css_selector('//div[@id="div1"]') #this part is wrong
相反,如果您要選擇div1,則可以執行此操作
content = browser.find_element_by_id('div1')
這是正確的代碼
url = "http://bvmf.bmfbovespa.com.br/cias-Listadas/Empresas-
Listadas/BuscaEmpresaListada.aspx?idioma=pt-br"
Ticker='ITUB4'
browser = webdriver.Chrome()
browser.get(url)
sleep(2)
browser.find_element_by_xpath(('//*[@id="ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_txtNomeEmpresa_txtNomeEmpresa_text"]')).send_keys(Ticker)
browser.find_element_by_xpath(('//*[@id="ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnBuscar"]')).click()
我測試了它,它起作用了:)
如果我幫助過您,請將其標記為最佳答案:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.