跳到主要内容

自动翻译脚本

背景

场景:当你接手的一个网站历史悠久,但发现 SEO 权重非常的一般,那有可能是因为坏链太多,导致搜索引擎判断这个网站的站点地图有很多不可靠,最终影响到网站权重。

当你列出了 sitemap 文件后,这里面的链接总不能挨个手动点吧?这时候,你需要一个自动化脚本,能够帮你批量检测网站的链接是否能够打开。

前置条件

获取网站的 sitemap 文件,里面会列出这个网站的所有链接。当然,你也可以手动导入 csv 文件,格式大概长这样(其实就是包含完整 URLs 的地址):

https://estruturarte.com.br/pickup/F1850555
https://ns.hashva.com/mah.php?wqyaesdppr/sj-371792.html
https://classbclass.ir/content.php?pickup/K1178460
https://forexreprogramming.com/pickup/I1752252
https://eglow.mx/pickup/K1221646

代码

代码需在 Python 环境下运行。

import openai
import re
import os
import tqdm
from mdutils.mdutils import MdUtils

# 设置你的 OpenAI API 密钥
openai.api_key = 'sk-******'

# 选择你想要使用的 GPT 模型
model = "gpt-3.5-turbo-0613"

script_dir = os.path.dirname(os.path.realpath(__file__))

# 输入文件路径
input_file_path = os.path.join(script_dir, 'sse.md')

# 输出文件路径
output_file_path = os.path.join(script_dir, 'sse-en.md')

# 读取源文件
with open(input_file_path, 'r', encoding='utf-8') as file:
lines = file.readlines()

# 创建 Markdown 文件
mdFile = MdUtils(file_name=output_file_path, title='Translated Document')

# 进度条
pbar = tqdm.tqdm(total=len(lines))

# 初始化段落
paragraph = ""

for line in lines:
# 跳过图片链接和代码块
if re.match("!\[.*\]\(.*\)", line) or re.match("```", line):
# 如果当前行是新的段落,翻译之前的段落
if paragraph:
response = openai.ChatCompletion.create(
model=model,
messages=[
{"role": "system", "content": "你现在是一个英文技术文档翻译专家,请翻译这部分内容。"},
{"role": "user", "content": paragraph}
]
)
translated_paragraph = response['choices'][0]['message']['content']
mdFile.new_line(translated_paragraph)
paragraph = ""
mdFile.new_line(line)
else:
# 添加行到当前段落
paragraph += line
pbar.update(1)

# 翻译最后一个段落
if paragraph:
response = openai.ChatCompletion.create(
model=model,
messages=[
{"role": "system", "content": "你现在是一个英文技术文档翻译专家,请翻译这部分内容。"},
{"role": "user", "content": paragraph}
]
)
translated_paragraph = response['choices'][0]['message']['content']
mdFile.new_line(translated_paragraph)

pbar.close()

# 保存 Markdown 文件
mdFile.create_md_file()