繁体   English   中英

在 Python 中使用 BeautifulSoup 找不到 HTML 表

[英]Can't find an HTML Table using BeautifulSoup in Python

我一直在尝试从以下 URL ( http://www.bmfbovespa.com.br/pt_br/servicos/market-data/consultas/mercado-de-derivativos/precos-referenciais/taxas-referenciais -bm-fbovespa/ ) 但我无法使用 find_all 找到它。

该表的 id = 'tb_principal1'。 当我尝试使用以下代码时,我不断得到一个空列表。

import requests
from bs4 import BeautifulSoup

url = 'http://www.bmfbovespa.com.br/pt_br/servicos/market-data/consultas/mercado-de-derivativos/precos-referenciais/taxas-referenciais-bm-fbovespa/'

r = requests.get(url)
soup = BeautifulSoup(r.text,'lxml')
soup.find_all(id = 'tb_principal1')

我尝试了在这里找到的一些解决方案,但找不到表格。 有没有人经历过类似的事情? 会不会是编码器的问题?

我很感激你的帮助。

快速浏览后,您引用的页面中的表格实际上来自不同页面的 iframe - http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf -ptBR.asp 如果您在该基本 url 上运行相同的代码,您应该得到预期的结果 -

import requests
from bs4 import BeautifulSoup

url = 'http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf-ptBR.asp'

r = requests.get(url)
soup = BeautifulSoup(r.text,'lxml')
soup.find_all(id = 'tb_principal1')

输出

[<table id="tb_principal1">
<thead>
<tr>
...
</table>]

作为参考,我所知道的最简单的方法是使用 Chrome 页面检查器中的“源”选项卡。 如果您在标准检查元素视图中查看表格元素上方的几个 div,您将看到一个表单元素,其中的操作也引用了该页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM