Beautifulsoup 网页表格的解析
Beautifulsoup 网页表格的解析
众所周知网页的表格标签里的文本需要按照表格的大小逐行逐列解析才能得到结构化的数据否则得到的内容则会错位。
原始网页:
代码示例:
if len(potentialtable) > 0:##print(str(tableContent[1]).replace('\xa0',' '))for tab in potentialtable:x = (len(tab.findAll('tr')))startidx = tab.sourcelinestrtemp = ""relend = 0realtabsize = 0print(tab.name + "\t where is my way")if (tab.name == 'table'):realtabsize = realtabsize + 1for row in tab.findAll('tr')[0:x]:y = (len(row.findAll('td')))if y == 0 or y == 1:endidx = row.sourcelineelse:endidx = row.findAll('td')[-1].sourcelineprint('endidx\t'+str(endidx))lastrow = row.findAll('td')[-1]lenchild=len(lastrow.find_all(lambda x: x.name != '', recursive=False))if lenchild >0:for i in lastrow.descendants:typename = str(type(i)).replace("<class 'bs4.element.", '').replace("'>", '')if (typename == 'NavigableString'):continueelse:relend = i.sourcelineprint('relend\t'+str(relend))else:relend =0for td in row.findAll('td')[0:y]:strtemp = strtemp + td.get_text().replace('\n', '') + "\t"strtemp = strtemp.rstrip('\t') + "\01" # + "^"relend = endidx if (relend == 0) else relendnewpd = pd.DataFrame({"bindid": bidid + '_' + str(catalog)[::-1][0], "start": startidx, "end": relend,"cont": strtemp.replace('\xa0', ' '), 'catalog': 4, 'realbindid': bidid,'bindkind': str(catalog)[::-1][0]}, index=["0"])df_htmlreplace = df_htmlreplace.append(newpd, ignore_index=True, sort=True)
执行结果(\t分割):
合同编号: BZGC2019042-01 合同名称: 消防改造工程第1标段 标段(包)名称: 消防改造工程第1标段 标段(包)编号: BZGC2019042-01 合同甲方名称: 人民医院 合同乙方名称: 金沙滩科技有限公司 合同金额: 852633.7 金额单位: 元 合同期限(天): 100 合同签署日期: 2019年08月19日 合同完成日期: 2020年04月30日 质量要求: 工程质量符合达到国家现行有关施工质量验收规范标准
Beautifulsoup 网页表格的解析相关推荐
- Python案例学习:抓取网页表格数据解析并写入Excel
三年多没写博客了,原因是因为我转行了,经历了很长的低谷,那段时间从不看博客,今天打开来看,回复了一些评论,很抱歉,有些网友的评论没有及时回复.最近开始想写代码了~ 最近看基金股票,想抓取一些行业当天的 ...
- python pd.read_html 快速爬取网页表格数据与常规请求解析方式对比
为爬取网页表格数据,较容想到的常规方式是通过requests请求以及lxml解析定位获取元素,此外还可以通过pandas库的read_html直接获取表格数据,得到的将是目标网页所有table表格的l ...
- beautifulsoup网页爬虫解析_Python爬虫3步曲:5分钟学习用Python解析网页
使用正则表达式解析网页是Python的一个擅长的领域.如果还想更加深入地学习正则表达式,或者在平时经常用到正则表达式,可以进入Regular Expression 101网站学习,网站地址为 http ...
- 复制网页表格 在线格式转换 网页表格解析
概述: 网页表格很难单纯Ctrl+C复制,一般无法保留正确的格式信息,需要特殊处理. 方案: 1.调出网页源码HTML文件:浏览器右键->检查源代码 2.找到对应目标表格的HTML代码块,复制. ...
- python爬虫网页表格_python网页表格
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 以网页表格为例:https:www.kuaidaili.comfree该网站数据 ...
- python爬虫表格table_Python基于pandas爬取网页表格数据
以网页表格为例:https://www.kuaidaili.com/free/ 该网站数据存在table标签,直接用requests,需要结合bs4解析正则/xpath/lxml等,没有几行代码是搞不 ...
- python 爬虫 表格,python爬虫爬取网页表格数据
用python爬取网页表格数据,供大家参考,具体内容如下 from bs4 import BeautifulSoup import requests import csv import bs4 #检查 ...
- 32. Pandas借助Python爬虫读取HTML网页表格存储到Excel文件
Pandas借助Python爬虫读取HTML网页表格存储到Excel文件 实现目标: 网易有道词典可以用于英语单词查询,可以将查询的单词加入到单词本; 当前没有导出全部单词列表的功能.为了复习方便,可 ...
- 抓取网页数据并解析Android
抓取网页数据并解析 标签: 网页抓取jsoupAndroid 2016-03-02 13:54 1262人阅读 评论(1) 收藏 举报 分类: Android开发(原创)(7) 版权声明:本文为博 ...
最新文章
- Linux下修改swap的大小
- 顺序表(代码、分析、汇编)
- Python折半查找(二分查找)
- Microsoft强大团队(源代码)管理工具--TFS2010 与vs结合
- 等级考试(一):三级网络---似曾相识
- NLP学习—13.Seq2eq在机器翻译中的实战(bleu指标的代码实现)
- oracle脚本转mpp脚本,范本:使用expdp/impdp克隆生成一个新数据库
- Android 10正式版发布,支持5G和折叠屏设备
- UNIX环境高级编程
- 和画意思相近的字_画字五行属什么,画字在名字里的含义,画字起名的寓意_卜易居起名字典...
- 51单片机之步进电机实验
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- 如何删除win10更新文件并彻底解决win10自动更新问题?
- BaaS、FaaS、Serverless都是什么馅儿?
- 什么是云桌面?未来有可能替代电脑吗?
- 机器学习中的概率分布
- oracle 基本命令及常用的查询语句
- 计算机硬件软件的英语,计算机硬件、软件,computer hardware and software,音标,读音,翻译,英文例句,英语词典...
- cimiss java,灾害性天气个例库智能分析系统的设计与实现-气象.PDF
- Chrome不是浏览器----Google 要推 Chrome 操作系统
热门文章
- wxWidgets:wxToolbook类用法
- boost::signals2模块实现将参数从信号调用传递到槽的示例程序
- boost::python::converter::is_object_manager相关的测试程序
- boost::mpl::size相关的测试程序
- boost::mp11::tuple_for_each相关用法的测试程序
- boost::hana::any用法的测试程序
- bgi::detail::content用法的测试程序
- boost::fibers::numa::topology用法的测试程序
- boost::detail::lowest_bit的测试程序
- ITK:迭代图像中的区域,而无需写访问权即可访问索引