请编程实现以下功能:
【资料图】
1.所有html保存在all文件夹下。
2.对all文件下的所有html进行处理,提取表格中的数据。
3.自动提取表格头,列名以逗号进行分割。
4.处理完毕的文件输出为out+时间格式文件,用于区别不同时间处理的文件。
二、通过chatgpt来进行编程源代码如下:
import osimport csvimport pandas as pdfrom datetime import datetimefrom bs4 import BeautifulSoupdef extract_data(file): with open(file, encoding="utf-8") as f: soup = BeautifulSoup(f.read(), "html.parser") table = soup.find("table") if not headers: ths = table.find_all("th") headers.extend([th.text.strip().replace("\n", "") for th in ths]) for tr in table.find_all("tr")[1:]: tds = tr.find_all(["th", "td"]) row = [] for td in tds: text = td.text.strip().replace("\n", "").replace(",", ";") row.append(text) if len(row) == len(headers): rows.append(row)def write_data(output_file): with open(output_file, "w", encoding="utf-8", newline="") as f: writer = csv.writer(f) writer.writerow(headers) writer.writerows(rows)file_dir = "all"html_files = [os.path.join(file_dir, f) for f in os.listdir(file_dir) if f.endswith(".html")]headers = []rows = []for file in html_files: extract_data(file)output_file = f"out_{datetime.now().strftime("%Y-%m-%d_%H%M%S")}.csv"write_data(output_file)print(f"Data has been saved to {output_file}")chatgpt给出的解释:
具体地,我们使用BeautifulSoup库解析HTML文件,通过查找 在处理每个HTML文件时,我们首先查找表格头,并将其添加到 这样,我相信这份代码能够满足您的需求。如有任何问题,请随时和我联系。 1.提升效率 2.提供进度条显示 3.要及时保存数据,处理意外情况发生 最终代码如下: 执行效果: X 关闭 Copyright © 2015-2022 每日五金网版权所有 备案号:浙ICP备2022016517号-15 联系邮箱:5 146 761 13 @qq.com标签和其中的
、 标签来提取数据。其中,我们使用了一个 headers列表来保存表格头,使用一个rows列表来保存每一行数据。headers列表中。随后,我们依次遍历表格的每一行,并将其中的数据添加到rows列表中,保证了处理结果的准确性。对于每一行数据,我们判断其长度是否与headers列表相等,如果不相等则说明该行数据有误,我们就不予以保存。最终,我们将所有数据保存到一个CSV文件中,输出文件名为out+当前时间.csv,用于区别不同时间处理的文件。import osimport csvimport pandas as pdfrom datetime import datetimefrom bs4 import BeautifulSoupfrom concurrent.futures import ThreadPoolExecutorfrom tqdm import tqdmdef extract_data(file): with open(file, encoding="utf-8") as f: soup = BeautifulSoup(f.read(), "html.parser") table = soup.find("table") if not headers: ths = table.find_all("th") headers.extend([th.text.strip().replace("\n", "") for th in ths]) for tr in table.find_all("tr")[1:]: tds = tr.find_all(["th", "td"]) row = [] for td in tds: text = td.text.strip().replace("\n", "").replace(",", ";") row.append(text) if len(row) == len(headers): rows.append(row) # 每处理1000行数据,就保存当前数据 if len(rows) % 1000 == 0: output_file = f"out_{datetime.now().strftime("%Y-%m-%d_%H%M%S")}_{len(files)}.csv" write_data(output_file) files.append(output_file) rows.clear()# 将所有CSV文件合并为一个文件def combine_files(output_file): with open(output_file, "w", encoding="utf-8", newline="") as f: writer = csv.writer(f) writer.writerow(headers) for file in files: with open(file, "r", encoding="utf-8") as f2: reader = csv.reader(f2) next(reader) # 跳过文件头 for row in reader: writer.writerow(row) os.remove(file) # 删除临时文件 print("All files have been combined into one CSV file.")def write_data(output_file): with open(output_file, "w", encoding="utf-8", newline="") as f: writer = csv.writer(f) writer.writerow(headers) writer.writerows(rows)file_dir = "all"html_files = [os.path.join(file_dir, f) for f in os.listdir(file_dir) if f.endswith(".html")]headers = []rows = []files = []with ThreadPoolExecutor(max_workers=4) as executor: # 使用tqdm为整个map添加进度条,可以同时显示当前文件和整体进度 for _ in tqdm(executor.map(extract_data, html_files), total=len(html_files), desc="Extracting data"): pass# 处理剩余数据,并保存到CSV文件中if rows: output_file = f"out_{datetime.now().strftime("%Y-%m-%d_%H%M%S")}_{len(files)}.csv" write_data(output_file) files.append(output_file)# 合并所有CSV文件为一个文件output_file = f"out_{datetime.now().strftime("%Y-%m-%d_%H%M%S")}.csv"combine_files(output_file)print(f"Data has been saved to {output_file}")推荐内容
最近更新
利用ChatGPT辅助处理Html数据-当前热点
氙灯气候试验箱 关于氙灯气候试验箱介绍_全球聚焦
普通公路养护提质三年攻坚行动 咸宁市四县市区获评全省“红旗”单位
9个前鼻韵母是哪9个_鼻韵母是什么
快看点丨中移链助力黑龙江数字政府建设
世茂股份:11.4亿元中期票据未能按期偿付利息及本金0.25亿元
京东支付打白条是什么意思怎么还(京东支付打白条申请方法)
这次如何?穆帅欧战决赛战绩:欧冠欧联欧会5战皆胜,欧超3负
一个人一天需要多少热量合适_一个人一天需要多少热量
上海出台20条政策支持民间投资发展_环球视点
宋PLUS DM-i vs 银河L7 vs 深蓝S7!谁才是全场景下的最优选?
强制结束进程快捷键ctrl加什么(强制结束进程快捷键) 当前视讯
维护健康,自己是第一责任人-通讯
市场监管总局召开“数字+执法”能力提升三年行动部署推进会
上海豪宅热盘云锦东方仍在排查资质:认购人需至规定地点现场核验
棉纶是什么面料(棉纶是什么面料是什么材质)
教师节藏头诗300首_教师节藏头诗
世界热讯:OnePlus 10T手机没有警报滑块或哈苏相机品牌
环球快报:法网|王欣瑜晋级第二轮
环球观点:游戏笔记本电脑排行榜前十名(游戏笔记本电脑)
华擎展示新款 DeskMeet/DeskSlim 迷你主机,支持锐龙 7000
_即时焦点
【全球时快讯】指导价15.98-20.68万元 长安马自达CX-50行也正式上市
市高院印发参考指标
最新资讯:今日辟谣(2023年5月30日)
智立方:公司的空间感知测试技术可以应用于虚拟游戏领域
北京:到2025年人工智能核心产业规模达到3000亿元,持续保持10%以上增长
小漠港刷新重大件接卸新纪录-天天报道
东鹏饮料跌4.26% 招商证券民生证券在其高位唱多
佳能打印机mp259墨盒(佳能打印机mp259) 焦点热议
新房开荒保洁包括哪些内容
【世界速看料】对接百吨级航天器 神十六“会师”在即
三星750g(7500三星)|天天快资讯
环球报道:乔尔杰维奇收获塞尔维亚篮球教练协会评选的终身成就奖
张之臻:没那么爱红土,但突破却又总在红土赛场
中小学生肺活量标准
1963年中国的时代背景_1963年中国发生了什么-播资讯
东莞一社区干部平均月薪2万引热议 基本信息讲解
我的自画像作文四年级开头怎么写_我的自画像作文四年级 全球播报
哪位懂得怎么样炖,能把鸡头炖的骨头更酥烂?
华为WATCH 4系列手表今天开售:2699元起、支持高血糖风险评估 当前关注
世界热点评!俄称打击乌机场目标 乌称拦截11枚导弹
椭圆形怎么画视频_椭圆形怎么画
mp3连接电脑不显示-mp3连接电脑不显示u盘-全球观天下
神舟十六号飞船发射取得圆满成功 世界球精选
通讯!看跌黄金的主场优势还在
环球聚焦:祝大家在新的一年里祝福语_祝大家在新的一年里
海南省七届人大二次会议筹备组开展会前实地检查
【世界时快讯】锦泰财险20%股权挂牌转让
每日动态!这么念三宝,为什么还生病,遇见尽是不愉快的事?
郑州公办初中报名需要什么材料?2023 环球新动态
上海电缆研究所基地_上海电缆研究所
观热点:房子价格低于市场价格买卖合法吗
环球速看:新溪尾寺_关于新溪尾寺简介
Windows 10的最新预览版改进了微软优秀的新set功能
天津一男子地铁偷拍女生裙照?最新通报
字节跳动进驻香港中环商务区_每日资讯
当前观察:双鹭药业:公司会加强项目管理,提高工作效率,加快研发项目的产业化效率
天合光能:拟107亿元投建年产25GW单晶拉棒及配套项目-快播报
形容学无止境的诗句或名言及译文(形容学无止境的诗句)
共青城市气象台发布雷电黄色预警信号【III级/较重】【2023-05-29】|世界新动态
信隆健康: 独立董事关于第七届董事会第五次临时会议相关事项的独立意见-世界今日报
爽!这里集夜市、后备箱市集、露营于一体
复星国际:斥资约1073万港元回购231.55万股
天天头条:北向资金全天净买入14.36亿元
银之杰:公司按照募集资金使用计划,有序推动募投项目的建设|视焦点讯
台湾职业军人初一女“同游情人湾”被卷入海,他遭警方送办
当前快讯:非洲小国创世青赛历史
餐饮空间设计的基本划分及设计要求 一
2日北向资金净卖出37.83亿元 本周净买入约4.4亿元|环球焦点
与PPG共创色彩实验室 奇瑞车颜值再上新台阶? 今日热文
王一博代言老板电器,宠爱从双手开始 世界报资讯
焦点热文:游戏行业迎生产力跃迁!英伟达官宣AI模型代工服务 为NPC注入“灵魂”
《魔兽世界》龙爪丘陵位置攻略|天天最新
单位向量计算公式(单位向量)2023年05月25日更新
当前关注:如果民警晚到2分钟,她就会再被骗13余万元……
天天速递!强浩
遮瑕膏和气垫哪个先用?遮瑕膏和气垫的区别是什么?
皖苏两省开展平安边界共建
我,在山西省县城当民警,告诉你一年收入有多少 播资讯
当前快讯:能源恐慌过后 天然气价格暴跌让欧洲松一口气
全球微头条丨“拴心留人”谱写“青城之约” 江苏无锡首次举行大学生集体毕业典礼
山豆根种植技术及效益_山豆根种植技术 即时看
多地加速废止圈而不建风光项目 每日焦点
由于找不到msvcp120.dll怎么办?_快播报
手机问题:iPhone12待机耗电快怎么办
古地中海照片_古地中海 热头条
斐乐是哪个国家的品牌
辞退补偿金汇算清缴放哪里_辞退补偿金
微白蛋白肌酐3.4-33.9严重吗_尿微量白蛋白肌酐比值正常范围
利率告别3%时代,降息潮之后,该如何保卫我们的存款?
最新资讯:为苹果iPhone 15系列量产做准备:富士康郑州厂区开启火热招聘
世界滚动:红王解盘28日比赛分析:维拉恐难拿下布莱顿
国产大飞机C919开启全球首次商业载客飞行 乘客:无比自豪_天天快看
do i matter to me(I ME)
专家学者共话杨振宁:“物理学才刚刚开始”
444+111,浙江省级龙头!
环球快报:安雅萍(关于安雅萍介绍)
天天看点:古诗中有哪些君 含有“君”和“珺”的古诗有哪些?
最新资讯:林学类怎么样前景最好的十大专业真实的就业现状
2023法网明天开打,没有纳达尔,你看啥?|每日报道