首页 > 其他分享 >利用chatgpt辅助处理html数据

利用chatgpt辅助处理html数据

时间:2023-05-30 17:03:02浏览次数:35  
标签:辅助 headers html file output import chatgpt data

     使用chatgpt进行辅助编程首先要清晰描述自己需求,生成代码通过不断调试及优化,最终完成任务。有它,对程序员是好事也是坏事。

一、确认功能

请编程实现以下功能:

1.所有html保存在all文件夹下。

2.对all文件下的所有html进行处理,提取表格中的数据。

3.自动提取表格头,列名以逗号进行分割。

4.处理完毕的文件输出为out+时间格式文件,用于区别不同时间处理的文件。

二、通过chatgpt来进行编程

利用chatgpt辅助处理html数据_html

源代码如下:

import os
import csv
import pandas as pd
from datetime import datetime
from bs4 import BeautifulSoup

def 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}')

三、继续优化

1.提升效率

2.提供进度条显示

3.要及时保存数据,处理意外情况发生

最终代码如下:

import os
import csv
import pandas as pd
from datetime import datetime
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor
from tqdm import tqdm

def 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')]
current_time = datetime.now().strftime('%Y-%m-%d_%H%M%S')
headers = []
rows = []
output_file = f"out_{current_time}.csv"

# 创建线程池,最大线程数为4
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

write_data(output_file)

print(f'Data has been saved to {output_file}')

执行效果:

利用chatgpt辅助处理html数据_进度条_02

标签:辅助,headers,html,file,output,import,chatgpt,data
From: https://blog.51cto.com/simeon/6380527

相关文章

  • 辅助测试和研发人员的一款小插件【数据安全】
    一、为什么要做一款这样的小插件数据,一直在思考如何让数据更安全的流转和服务于客户,围绕这样的想法,我们做过许多方面的扩展。我们落地了服务端的数据切片支持场景化的设计,实现了基于JDBC协议对SQL的拦截与切片,实现了在应用层的全链路数据库审计方案和实现,实现了WEB端明暗水印和文......
  • 如何用ChatGPT学Python
    大家好,欢迎来到Crossin的编程教室!关于ChatGPT的能力,大家想必都已听说,很多同学应该都亲自体验过了。其在自然语言处理方面的出色表现,绝对是颠覆了之前大众对人工智能的印象但ChatGPT的能力还远不止对于语言文字的处理,它甚至可以对代码进行理解和生成,这有赖于它丰富的知识库和背......
  • 保姆级讲解,让ChatGPT成为机器人的智慧大脑
    ChatGPT是生成式人工智能,如果能接入机器人,可以让机器人更加智能。 我手上没有硬件,但我们可以模拟尝试机器人的制作逻辑,这个设计分成两部分:硬件、软件。 一、硬件:机器人 1.机器人可以听取人类的对话 2.机器人要接入ChatGPT 3.机器人可以根据ChatGPT的指示做出响......
  • ChatGPT已能模仿任何写作风格,让你的自媒体快速起号
    我认识的一两个技术大佬目前失业在家,压力不小。对于现在的就业市场来说,再找工作,高不成低不就。他们的薪资,一般企业无法承受,大厂岗位又在缩减。今年真正感受到了寒冬。 对于我们还有饭吃的程序员,现在不如搞个自媒体,先做起来。及早做最坏的准备,别只在一艘大船上耗着,当船沉的......
  • Html源代码加密?
    什么是Html源代码加密?使用JavaScript加密转化技术将Html变为密文,以此保护html源代码,这便是Html源码加密。同时,这种加密技术还可实现网页反调试、防复制、链接加密等功能。应用场景什么情况下需要Html源代码加密?Html源代码加密可用于哪些场景?Html源代码加密可用于以下需求场合:Html......
  • 用一杯星巴克的钱,训练自己私有化的ChatGPT
    文章摘要:用一杯星巴克的钱,自己动手2小时的时间,就可以拥有自己训练的开源大模型,并可以根据不同的训练数据方向加强各种不同的技能,医疗、编程、炒股、恋爱,让你的大模型更“懂”你…..来吧,一起尝试下开源DolphinScheduler加持训练的开源大模型!导读让人人都拥有自己的ChatGPTCha......
  • 辅助测试和研发人员的一款小插件【数据安全】 | 京东云技术团队
    一、为什么要做一款这样的小插件数据,一直在思考如何让数据更安全的流转和服务于客户,围绕这样的想法,我们做过许多方面的扩展。我们落地了服务端的数据切片支持场景化的设计,实现了基于JDBC协议对SQL的拦截与切片,实现了在应用层的全链路数据库审计方案和实现,实现了WEB端明暗水印和文档......
  • 如何用Rust编写一个ChatGPT桌面应用
    今天发现了京东云团队发的一个博客,保存下来慢慢看。为什么我们需要一个桌面应用原因实在太多,我们需要便捷地导出记录,需要在回答长度超长的时候自动加上“继续”,需要收藏一些很酷很实用的prompt......(首先我假设你是一名如我一样习惯用IDEA开发的java仔)为什么是用Rust编写......
  • 文档在线预览(二)word、pdf文件转html以实现文档在线预览
    @目录一、将文件转换成html字符串1、将word文件转成html字符串2、将pdf文件转成html字符串二、将文件转换成html,并生成html文件FileUtils类将html字符串生成html文件示例:1、将word文件转换成html文件2、将pdf文件转换成html文件实现文档在线预览的方式除了上篇文章《文档在线预览......
  • ChatGPT浅析
    ChatGPT是近期最火的概念了,和之前的AlphaGo不同,GPT让AI和普通大众如此接近,让大家可以亲自接触到AI带来的全新体验。不过,AI并不是魔法,ChatGPT也不是革命性的新技术。目前我个人来看,ChatGPT要取代人类的工作还言之过早,不过,辅助人类提高工作效率却已经绰绰有余。ChatGPT如此热门,相......