找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 375|回复: 0

提取网页文件的主题和内容到txt文件

[复制链接]

144

主题

73

回帖

923

积分

管理员

积分
923
发表于 2024-6-12 22:44:32 | 显示全部楼层 |阅读模式
ChatGPT-4o生成代码,利用one-api项目,调用智谱glm-4-0520模型(后续测试采用glm-4-Air,glm-4-FLASH效果更好)

  1. import os
  2. import requests
  3. from bs4 import BeautifulSoup
  4. import time

  5. # 设置基础URL和API密钥
  6. base_url = 'https://api.url.com/v1/'
  7. api_key = 'sk-yourkey'

  8. # 读取HTML文件并提取文本内容
  9. def extract_text_from_html(file_path):
  10.     with open(file_path, 'r', encoding='utf-8') as file:
  11.         soup = BeautifulSoup(file, 'html.parser')
  12.         # 获取所有文本内容
  13.         text = soup.get_text(separator='\n')
  14.     return text

  15. # 调用Chat API进行内容过滤
  16. def filter_content_with_chat_api(text, retries=3):
  17.     headers = {
  18.         'Authorization': f'Bearer {api_key}',
  19.         'Content-Type': 'application/json'
  20.     }
  21.     # 优化后的prompt
  22.     data = {
  23.         'model': 'default',  # 确保使用正确的模型
  24.         'messages': [
  25.             {'role': 'system', 'content': '你是一个帮助用户过滤广告和无关内容的助手。'},
  26.             {'role': 'user', 'content': f"请识别并去除以下文本中的广告和与文章无关的内容。请确保保留所有与文章主题相关的有用信息,并删除所有广告、联系方式、版权声明等无关内容:\n\n{text}\n\n"}
  27.         ],
  28.         'max_tokens': 2048,
  29.         'temperature': 0.5
  30.     }
  31.    
  32.     for attempt in range(retries):
  33.         try:
  34.             response = requests.post(f"{base_url}chat/completions", headers=headers, json=data)
  35.             response.raise_for_status()  # 如果响应状态码不是200,会引发HTTPError
  36.             response_data = response.json()
  37.             if 'choices' in response_data and len(response_data['choices']) > 0:
  38.                 return response_data['choices'][0]['message']['content'].strip()
  39.             else:
  40.                 raise KeyError("API响应中没有'choices'字段或'choices'字段为空")
  41.         except (requests.RequestException, KeyError, ValueError) as e:
  42.             print(f"API调用失败(尝试 {attempt + 1}/{retries}):{e}")
  43.             time.sleep(2 ** attempt)  # 指数退避策略
  44.     raise Exception("API调用多次失败")

  45. # 分段处理长文本内容
  46. def process_long_text(text, chunk_size=2000):
  47.     text_chunks = [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]
  48.     filtered_chunks = []
  49.     for chunk in text_chunks:
  50.         try:
  51.             filtered_chunk = filter_content_with_chat_api(chunk)
  52.             filtered_chunks.append(filtered_chunk)
  53.         except Exception as e:
  54.             print(f"处理文本块时出错: {e}")
  55.             continue
  56.     return "\n".join(filtered_chunks)

  57. # 处理目录中的所有HTML文件
  58. def process_html_files(directory):
  59.     for filename in os.listdir(directory):
  60.         if filename.endswith('.html'):
  61.             file_path = os.path.join(directory, filename)
  62.             text = extract_text_from_html(file_path)
  63.             try:
  64.                 filtered_text = process_long_text(text)
  65.                 output_file_path = os.path.join(directory, f"{os.path.splitext(filename)[0]}.txt")
  66.                 with open(output_file_path, 'w', encoding='utf-8') as output_file:
  67.                     output_file.write(filtered_text)
  68.                 print(f"Processed {filename} and saved to {output_file_path}")
  69.             except Exception as e:
  70.                 print(f"处理文件 {filename} 时出错: {e}")

  71. # 设置HTML文件所在目录
  72. html_directory = './html'

  73. # 处理HTML文件
  74. process_html_files(html_directory)
复制代码
示例网页复旦大学金融EMBA首期班学生徐瑾:财经女作家的斜杠人生 | 复旦大学国际金融学院(FISF)|最懂中国金融的国际化商学院 (fudan.edu.cn)

txt文件内容(加粗部分为错误):

去除广告和无关内容后,保留的文本如下:

复旦大学金融EMBA首期班学生徐瑾:财经女作家的斜杠人生

担任英国《金融时报》中文网财经主编八年,直面中国最优秀的经济学家和企业家,持续关注中国经济,向大众和专业投资者解读中国经济发展背后的故事。徐瑾将自己定位为“中国经济的观察者”。

除此之外,徐瑾还拥有青年学者、作家、评论家等多重身份,凭借对中国经济的敏锐洞察和思考,十年间相继出版了多部经济(财经)著作,包括《白银帝国》、《印钞者》、《凯恩斯的中国聚会》等,在业界引起强烈反响。同时,徐瑾是“经济人读书会”创始人。

这段文本去除了所有与文章主题不相关的广告、课程项目列表、联系方式、版权声明等内容,仅保留了关于徐瑾的介绍和她作为财经女作家的主要成就。
人,并运营财经与读书主题的社群,还是“得到”《徐瑾·经济学大师30讲》主理人。近期,徐瑾又多一个新身份 — 复旦大学金融EMBA项目首期班学生。她始终以经济观察者为主线,多轨道前行,拓展精彩的斜杠人生。

人生马拉松,必须补给和滋养

2008年全球金融危机之后,中国经济飞速提升,跃居世界第二,成为中国加入WTO之后经济发展的一个重要转折点。在这期间,经济学家从未停止对中国经济的思考,传递给大众以及投资者们清晰的经济讯息。

徐瑾乐在其中。过去的经历就像一路奔跑,满怀激情地做着自己喜欢的事情,不断释放自己的思考和能量,如果一路向前,事业势必能够开出绚烂之花。“人生是一场马拉松”,徐瑾说,“长期的奔跑之后,有必要在某个阶段停下来想一想,同时自己也需要一些补充和滋养。”如同中国经济有重要拐点,要及时作出调整一样,徐瑾决定回归校园,将重新学习作为人生道路上一个转折点。

源于新闻工作者的敏感度,徐瑾几乎了解复旦泛海国金从组建到招生的全过程。

“我对复旦泛海国金的很多老师都很熟悉。”徐瑾介绍,复旦泛海国金的组建作为教育界的一件大事,曾引发其密切关注。从院长遴选和师资招募,徐瑾发现有特别多优秀的教授跻身学院的建设当中。过硬的师资力量是复旦大学金融EMBA项目吸引徐瑾的重要原因。

由于工作的性质,徐瑾会接触很多的商学院。长期的关注让徐瑾了解到,一些国内较为成功的商学院在走向成熟的过程中容易陷入体制化,而复旦泛海国金作为一个新的商学院,像创业公司一样迸发着蓬勃向上的激情,学院的每个人都有着努力和竞争意识,给人耳目一新的感觉。这是复旦泛海国金区别于传统商学院的地方,亦是它的魅力所在。“在这里,感觉一切都充满了可能性。”徐瑾表示。

也正是因为“一切充满了可能性”,徐瑾不想对未来两年的学习做过多框架式的规划,而更倾向于开辟更多未知。在她看来,复旦大学金融EMBA项目的学习远远不止两年——尽管现在还未开学,同学们已经经历了多次班会和集体活动,彼此已经熟悉了起来。很多同学都是活跃在各界的精英,徐瑾相信,与优秀的同学、老师一路同行,相互学习和彼此碰撞,一定会产生更多令自己惊喜的未知。

徐瑾是一个喜欢分享的人。因为好奇,所以学习,然后再把所学分享给他人,为此她也做了很多传播知识的尝试。

当前知识迭代过快,不读书学习将跟不上时代发展。但如何用有限的时间,在良莠不齐的财经读物中选出含金量最高的书籍,成为一个难点。徐瑾汇集了一批和自己背景相似,趣味相投的人,组建了经济人读书会,坚持每个月为大家推荐真正有价值的书单,同时举办多次线下活动,促进经济行业的读者们共同进步。而今,经济人读书会已成立三年,正吸引着越来越多的读者加入。

除此之外,徐瑾还经营着读书和财经类的社群,倡导大家以通识的角度看待经济发展,打造了一个学习经济的全新平台。徐瑾认为,未来的教育不仅在大学、公司,更多的是个体的自我不断迭代,未来商学院教育如何与自我迭代相结合,也成为徐瑾的兴趣所在。今年,徐瑾在罗振宇创办的“得到”开讲,开设《 徐瑾·经济学大师30讲》一课。

徐瑾说,无论是读书会还是社群或者在“得到”开课,都是自己分享知识的业余爱好,是自己斜杠人生的一个标签。

作为一个经济观察者,结合自己做读书会和社群的经验,徐瑾提出了“二手人生”的概念。

徐瑾指出,2008年之后中国经济快速增长,中产阶级在此期间习惯了快速增长的态势,并积累了一定的财富。但未来中国经济趋向疲软,阶层跃升将遭遇天花板,同时,当今时代大多数人的职业生涯大于公司寿命。在这种情况下,除了要做职业规划以外,徐瑾鼓励大家开辟二手人生。二手人生可以称作是斜杠人生的进阶,它不仅是兴趣爱好,而更多是转换人生赛道的准备,拓展自身社会网络更重要。

作为新时代的知识工作者,如何将知识转化为产品,如何拓展不同网络,使产品的反馈最大化?这都将是二手人生中面临的重要课题,需要在实践中思考凝练,找到答案。

对徐瑾来说,复旦泛海国金也是一个使产品打磨最优化的网络,是寻找学习如何将知识转化为产品的途径。
更好转化为产品的优质平台。

徐瑾对复旦大学有感情。本科在读期间,她和同仁在上海创办达5万订阅量的读书公益期刊《读品》,在知识界有不少读者,当时网络上甚至有一种说法是“南有读品,北有读库”。团队中复旦人贡献颇多,那是复旦大学留在她青春里的记忆。

徐瑾对复旦金融EMBA有信心。在英国《金融时报》,她是一个兼顾“喝咖啡”和“喝茶”,把中西方文化有机结合的新闻人,现在同样期待在两年学习中博采众长,与老师同学共振出最大能量,这是她对复旦金融EMBA无限可能的美好憧憬。

“今天是一个知识经济的时代,意味着我们每个人都要不断学习。在这种情况下,你应该寻找更多的可能性,复旦泛海国金就是给予你更多可能性的地方。这里的精彩在入学前开始,毕业后延续,并伴随你的一生。来复旦泛海国金,相信你不会后悔。”徐瑾对学弟学妹的谆谆寄语,正是她心目中复旦泛海国金的真实写照。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2024-10-31 22:19 , Processed in 0.709052 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表