首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何下载html表格内容?

如何下载html表格内容?
EN

Stack Overflow用户
提问于 2019-08-11 10:40:16
回答 2查看 1.2K关注 0票数 1

我想从以下网站下载财务数据("konsernregnskap“而不是"morregnskap"),但我不确定如何下载所有内容:https://www.proff.no/regnskap/yara-international-asa/oslo/hovedkontortjenester/IGB6AV410NZ/

试图用xpath定位这些表,但我没有成功。

我想下载所有的内容到一个excel表格。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-11 21:01:04

@rusu_ro1给出的答案是正确的。然而,我认为https://pandas.pydata.org/是合适的工作工具。

您可以使用https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.read_html.html获取页面中的所有表。然后使用https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html只将最后4个表写入excel工作簿。

下面的脚本会抓取数据并将每个表写入不同的工作表。

代码语言:javascript
复制
import pandas as pd
all_tables = pd.read_html(
    "https://www.proff.no/regnskap/yara-international-asa/oslo/hovedkontortjenester/IGB6AV410NZ/"
)
with pd.ExcelWriter('output.xlsx') as writer:
    # Last 4 tables has the 'konsernregnskap' data
    for idx, df in enumerate(all_tables[4:8]):
        # Remove last column (empty)
        df = df.drop(df.columns[-1], axis=1)
        df.to_excel(writer, "Table {}".format(idx))

备注:

风味: str或None,字符串容器 要使用的解析引擎。‘bs4’和‘html5lib’是同义词,它们都是为了向后兼容而存在的。默认的None尝试使用lxml解析,如果失败,则返回到bs4 + html5lib。

来自https://pandas.pydata.org/pandas-docs/version/0.23/io.html#io-html-gotchas

html5lib自动从无效标记生成有效的HTML5标记。这对于解析HTML表非常重要,因为它保证了一个有效的文档。但是,这并不意味着它是“正确的”,因为修复标记的过程没有一个定义。

在您的具体情况下,它会删除第五个表(它只返回7)。也许B‘’coz-第1表和第5表--都有相同的数据。

票数 2
EN

Stack Overflow用户

发布于 2019-08-11 13:01:53

类表包装中有8个表,前4个表属于"morregnskap“选项卡,接下来的4个表属于"konsernregnskap”选项卡,因此通过选择最后4个表,您将从可以开始刮取数据的位置选择所需的表。

代码语言:javascript
复制
import requests
import json
import bs4

url = 'https://www.proff.no/regnskap/yara-international-asa/oslo/hovedkontortjenester/IGB6AV410NZ/'


response = requests.get(url)
soup = bs4.BeautifulSoup(response.text, 'lxml')
tables = soup.find_all('div', {'table-wrap'})


konsernregnskap_data = tables[5:]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57449268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档