如何提取和保存网页中的表格?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提取和保存网页中的表格?相关的知识,希望对你有一定的参考价值。

我想把网页中的表格和数据保存下来.
难的是,有些网页能保存网上文字,但不能提取和保存表格线
发现有的保存表格线乱了,并不能随意改动,怎么办?还有的网页表格,根本不让或说无法复制。比如彩票网上的大量带有数据的表格,怎么办??????

彩票网站上的表格怎么才能将表格和数据保存下来且以后还要在那些表格人中加些数据

各位大哥帮帮忙
不是啊,不是截图。以后还要在那些表格里加新的数据。如彩票表格

参考技术A 把网页全部保存下来,再用Microsoft FrontPage打开“.html”那个页面文件。

试试吧,我以前做个人主页时用过这招,搬走了一个大型网站的网格结构,不知道现在还是否好用。
参考技术B WPS暂时不支持HTML代码,所以暂时只能保存网页中的表格及文字,但对于图片是不能直接粘贴下来的,只能用另存的方式,再插入到文档中.对于你说的有些网页不能复制,那跟WPS是没有关系的,是网页本身就是那么做的.
补充:表格不能随意调整,是因为你的表格是以嵌入的方式插入的,所以是不能调整的,必须把环绕方式改为其它方式即可调整.
参考技术C 最简单的方法,右键点你要的表格,选导出到Microsoft office excel,就可以了。本回答被提问者采纳 参考技术D 工具栏中有个使用word编辑,你点这个,然后就可以编辑了,保存修改就可以了 第5个回答  2008-08-07 最简单的方法,右键点你要的表格,选导出到Microsoft office excel,就可以了。

jableparser: 通用的网页正文+表格提取工具

jableparser是一个用于提取网页中正文及表格数据的Python库。从名字可以看出,它来源于另一个Python的HTML解析器——jparser,在其基础上完善了正文提取的策略,使得它能够正确处理更多种网页,并重点强化了网页中表格数据抓取和格式化功能,所以是一个更"able"版的jparser。

安装

pip install jableparser

  

使用

由于脱胎自jparser,jableparser的调用方法及返回数据格式与jparser基本一致。

import jableparser
import pprint

import requests

url = "https://news.sina.com.cn/w/2020-06-07/doc-iircuyvi7181364.shtml"
req = requests.get(url)
req.encoding = utf-8
text = req.text

    
pm = jableparser.PageModel(text)
res = pm.extract()
"""
    res:
        res[‘content‘]的值类型为list
        list中每一项为一个dict, key有type和data两种
        type值有"text", "html", "image", "title"四种,分别对应文本,表格,图像和标题
"""
for item in res[content]:
    if item[type]=="text":
        pprint.pprint(item[data])

"""
‘原标题:澳研究报告揭秘“新冠病毒中国造”来源!‘
‘澳大利亚研究院责任技术中心近日发布的研究报告称,关于新冠病毒的虚假信息特别是“中国为研制生物武器而创造病毒”阴谋论在网络上散播的过程中,“支持特朗普”和“匿名者Q”社交媒体群发挥了协调作用。‘
‘该中心委托昆士兰科技大学专家的研究表明,阴谋论在推特上的传播就像是一场协调的网络水军行动。他们对3月下旬推特上260万条与新冠病毒有关的推文以及在10天时间内对这些推文的2550万次转发作了分析,发现有5752个推特账户以一致的方式对新冠病毒相关信息转发了6559次,并且协调一致地散播有关“新冠病毒是中国制造的生物武器”阴谋论。在10天时间里,有882条原创推文与生物武器阴谋论有关,这些推文被转发18498次、点赞3783次,在推特上阅读量约500万次。研究还证实了一个互推虚假信息的网络,其中2903个账户之间有4125个链接关联。在这个网络中,研究人员发现了28个到30个账户组群,它们的标识都是“支持特朗普”、共和党,或者与支持特朗普的“匿名者Q”组织有关。‘
‘报告说,“无论网络水军参与者精心谋划和推广这些关于生物武器阴谋论,还是由外部人员对此加以利用,所要达到的舆论效果是一致的,就是让谣言所推动的主题或话题被更广泛的边缘群体所接受,从而放大谣言的真实性”。报告指出,原始推文中所包含的错误和虚假信息不再只由机器人程序和其他相关账户推广,而是在更广范围内,被真实存在的普通用户转发。当媒体或社交大V们也参与到阴谋论中来时,即使有事实反驳,虚假信息也很容易引起公众的广泛关注。社交媒体网站经常在没有纠正或事实核对的情况下谈到阴谋论,结果使大量的新受众接触到了他们原本不会遇到的虚假信息。因此,小型媒体可能成为阴谋论进入主流舆论的重要途径。‘
‘来源:经济日报‘
‘责任编辑:郑亚鹏‘
"""

 

此外,jableparser还对jparser提供的基础表格提取功能进行了强化,支持对更多种表格数据进行提取,并增加了对表格HTML字符串格式化输出功能。

    
pm = jableparser.PageModel(text)
res = pm.extract()
for item in res[content]:
    if item[type]=="html":
        pprint.pprint(pm.processtable(item[data]))

"""
[(‘01‘, ‘这回,德国外长对黄之锋有点不一样‘),
 (‘02‘, ‘被罢免的韩国瑜:一步踏错 步步错‘),
 (‘03‘, ‘这是特朗普近来最兴奋的一天 又说漏嘴了一句话!‘),
 (‘04‘, ‘要求总统"撤军"反被攻击 美华盛顿特区市长加入抗议‘),
 (‘05‘, ‘北京一夜地摊世相:夜入千元的木匠 心虚犯怂的批发商‘)]
[(‘01‘, ‘陕西蓝田通报“小学女生遭4名男生侵害”:多人受处分‘),
 (‘02‘, ‘今天,高考倒计时1个月,一起转发高考加油MV‘),
 (‘03‘, ‘意大利单日新增6557例确诊病例,累计确诊破5万‘),
 (‘04‘, ‘熊孩子用牙签扎破超市45袋真空包装大米,结果……‘),
 (‘05‘, ‘湖南"蛋白固体饮料"调查结果:欺诈误导消费 罚200万‘)]
"""

相比之下,jparser由于只能识别<table>标签,在此网页上即无法提取到表格数据。

对比测试

对相同网页以newspaper3k, jparser, jableparser三种工具比较提取效果。

https://en.wikipedia.org/wiki/George_H._W._Bush

技术图片

 

 

 

newspaper3k: 未提取到正文,不支持提取表格数据

jparser: 提取出正文,同时将文章中的上角标数字也提取了出来;提取出了右侧第一个表格

jableparser: 提取出的正文,没有角标数字,且没有文末的引用标注;提取出了4个表格,包括两个非<table>标签的

 

https://www.ducksters.com/biography/entrepreneurs/steve_jobs.php

技术图片

 

 

 

newspaper3k: 未提取到正文

jparser: 未提取到正文及表格

jableparser: 提取到全部正文,及开头的一个非<table>表格


 

上述两个网页均为百科类网页,而newspaper3k和jparser相对更适应新闻页面,所以此测试未必公允,但也能说明,jableparser在网页正文提取及表格提取上,有更广的适用范围。

注意事项

PageModule类中的proxesstable函数,目前只支持二列表和单列表的格式化提取,如果输入的HTML源码对应表格是其他列数,会返回空,这样设计是为了让表格抽取更具针对性,而不是把诸如目录一类的结构也当做表格抽取回来。

项目地址

https://github.com/qjfoidnh/jableparser

欢迎提issue和pull requests

以上是关于如何提取和保存网页中的表格?的主要内容,如果未能解决你的问题,请参考以下文章

如何实现在网页中在线编辑EXCEL表格,然后保存到服务器中

VB 网页数据提取

如何批量保存网页中的图片

怎么把这个表格的内容提取到网页上面?

VC CWebBrowser2 获取网页文本内容,该怎么解决

用Vb提取网页中的数据