【发布时间】:2018-03-09 12:23:15
【问题描述】:
下面的网站有几个表格,但我的代码无法获得特定的一个(也没有任何其他表格)。
代码旨在从表格“Ações em Circulação no Mercado”中获取数据 -> 网页中最后一个表格。
我已经尝试了下面的代码和一些替代方案,但没有一个对我有用:
import pandas as pd
from selenium import webdriver
from time import sleep
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) #Wait webpage to load
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();
sleep(2) #Wait webpage to load
browser.find_element_by_xpath(('//*[@id="ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_grdEmpresa_ctl01"]/tbody/tr/td[1]/a')).click();
sleep(5) #Wait webpage to load
#This is not working
content = browser.find_element_by_css_selector('//div[@id="div1"]')
#This is not working as well
#browser.find_element_by_xpath('//*[@id="div1"]/div/div/div[1]/table/tbody/tr[1]/td[1]').text
表格和完整的 HTML 可以在这里找到:
HTML 是:
<div id="div1">
<div>
<h3>Ações em Circulação no Mercado</h3>
<div class="table-wrapper"><div class="scrollable"><table class="responsive">
<thead>
<tr>
<th colspan="3" class="text-center">19/04/2017</th>
</tr>
<tr>
<td>Tipos de Investidores / Ações</td>
<td class="text-center">Quantidade</td>
<td class="text-center">Percentual</td>
</tr>
</thead>
<tbody><tr>
<td>Pessoas Físicas</td>
<td class="text-right">108.853</td>
<td class="text-right"> - </td>
</tr>
<tr>
<td>Pessoas Jurídicas</td>
<td class="text-right">11.591</td>
<td class="text-right"> - </td>
</tr>
<tr>
<td>Investidores Institucionais</td>
<td class="text-right">1.039</td>
<td class="text-right"> - </td>
</tr>
<tr>
<td>Quantidade de Ações Ordinárias</td>
<td class="text-right">272.710.309</td>
<td class="text-right">8,21</td>
</tr>
<tr>
<td>Quantidade de Ações Preferenciais</td>
<td class="text-right">3.141.058.175</td>
<td class="text-right">97,23</td>
</tr>
<tr>
<td>Total de Ações</td>
<td class="text-right">3.413.768.484</td>
<td class="text-right">52,11</td>
</tr>
</tbody></table></div><div class="pinned"></div></div>
</div>
</div>
【问题讨论】:
-
大家好,最后网页信息显示为iFrame,需要特殊工具。可以找到更多信息@elementalselenium.com/tips/3-work-with-frames@elrich bachman 解决了该解决方案。谢谢大家
标签: python python-3.x selenium web-scraping