在Python中使用BeautifulSoup找不到HTML表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中使用BeautifulSoup找不到HTML表相关的知识,希望对你有一定的参考价值。

我一直在尝试从以下URL(http://www.bmfbovespa.com.br/pt_br/servicos/market-data/consultas/mercado-de-derivativos/precos-referenciais/taxas-referenciais-bm-fbovespa/)解析HTML表,但我找不到使用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。如果您在该基本网址上运行相同的代码,您应该获得预期的结果 -

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页面检查器中的“sources”选项卡。如果在标准检查元素视图中查看表元素上方的几个div,您将看到一个表单元素,其中还有一个引用该页面的操作。

以上是关于在Python中使用BeautifulSoup找不到HTML表的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中使用 BeautifulSoup 解析数据

使用 BeautifulSoup 在 Python 中查找非递归 DOM 子节点

如何在 Python 中使用 Beautifulsoup 从 Indeed 搜索中获取所有招聘信息的 href?

在Python中使用BeautifulSoup找不到HTML表

使用 beautifulSoup、Python 在 h3 和 div 标签中抓取文本

Python:使用 BeautifulSoup 库抓取百度天气