千家信息网

python爬虫如何爬取英文文档存为PDF,在读取PDF自动翻译文档

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关python爬虫如何爬取英文文档存为PDF,在读取PDF自动翻译文档的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这几天在爬了Python的官方文
千家信息网最后更新 2026年11月02日python爬虫如何爬取英文文档存为PDF,在读取PDF自动翻译文档

这篇文章给大家分享的是有关python爬虫如何爬取英文文档存为PDF,在读取PDF自动翻译文档的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

这几天在爬了Python的官方文档,但是它里面全是英文,只有数字,没有汉字,原谅我这个英语渣渣搞不懂,只能靠翻译了,如果是复制到百度翻译的话太慢,耗时间。所以就直接用爬虫来搞了,自动化翻译文档

这是百度翻译的页面

刚开始想用urllib去做,但是给我报了一个我的浏览器版本太低了,估计就是得加headers和UA。太麻烦了,就想到了selenium,直接用selenium妥妥的,下面就是详细步骤了。

先从爬Python官网开始吧

就只抓了这一页的数据。这个简单,直接可以使用requests或者urllib抓取,然后转换成pdf。我的是在框架里面,有点麻烦,如果你觉得麻烦可以直接请求。

安装Python库:pip3 install pdfkit

安装插件wkhtmltopdf,

https://wkhtmltopdf.org/downloads.html官网地址

import scrapy
import pdfkit

class so_python3_spider(scrapy.Spider):

name = 'doc'
def start_requests(self):
url = 'https://docs.python.org/3.8/whatsnew/3.8.html'
yield scrapy.Request(url=url, callback=self.parse)

def parse(self, response):
body = response.selector.xpath('//div[@class="section"]').extract()
title = response.selector.xpath('//div[@class="section"]/h2/text()').extract()
html_template = """






{content}


"""
for i in range(len(body)):
html = html_template.format(content=body[i])
with open(title[i]+'.html', 'a', encoding='utf8') as f:
f.write(html)
options = {
'page-size': 'Letter',
'encoding': "UTF-8",
'custom-header': [
('Accept-Encoding', 'gzip')
]
}
path_wk = r'D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe' # 安装位置
config = pdfkit.configuration(wkhtmltopdf=path_wk)
pdfkit.from_file(title[i]+'.html', title[i]+'.pdf', options=options, configuration=config)

我是直接将一个div里面的这个内容全部拿下来,然后拼接一个新的html,将这个新的HTML转换成PDF。

第二阶段就是打开这个pdf,读取该文档,将其发送到百度翻译的框框,获取翻译的结果,重新保存

-----------读取文档--------

def read_pdf_to_text(self):
fp = open("What's New In Python 3.8.pdf", "rb") # 根据二进制的方式读取
# 如果是url
# fp=request.urlopen(url)#网址
# 创建与文档关联的解释器
parser = PDFParser(fp)
# 创建一个pdf文档对象
doc = PDFDocument()
# 连接解释器和文档对象
parser.set_document(doc)
doc.set_parser(parser)

# 对文档进行初始化
doc.initialize("") # 文件没有密码就是空字符串
# 创建一个pdf资源管理器
resouse = PDFResourceManager()
# 创建一个参数分析器
lap = LAParams()
# 创建一个聚合器
device = PDFPageAggregator(resouse, laparams=lap)
# 创建一个页面解释器
interpreter = PDFPageInterpreter(resouse, device)
# 开始读取内容
for page in doc.get_pages():
# 调用页面解释器来解释
interpreter.process_page(page)
# 使用聚合器来获得内容
layout = device.get_result()
for out in layout:
if hasattr(out, "get_text"):
content = out.get_text()

将文档读取,发送到百度翻译https://fanyi.baidu.com/?aldtype=16047#en/zh

找到输入框和输出框的位置

翻译模块(复制到微信里,格式有点问题,大家自己修正)

def baidu_fanyi(self, content):

time.sleep(5)
# 找到输入框的位置,并将内容发送到该位置
self.browser.find_element_by_id('baidu_translate_input').send_keys(content)
time.sleep(5)
# 获取输出框的内容
con = self.browser.find_element_by_class_name('output-bd')
# 写入文件
with open('python3.8.txt', 'a', encoding='utf8') as f:
# 由于content内容带有回车符,所以不用\n
f.write(content + con.text + '\n')
# 将输入框清空,等待下一次输入
self.browser.find_element_by_id('baidu_translate_input').clear()
time.sleep(5)

这是翻译后输出的内容

当然还有可以优化加强的部分,比如使用pyqt做个界面,打包成exe就可以当程序用了。有什么建议留言。

感谢各位的阅读!关于"python爬虫如何爬取英文文档存为PDF,在读取PDF自动翻译文档"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

文档 内容 解释 位置 就是 解释器 输入 爬虫 英文 页面 麻烦 输出 对象 文件 更多 篇文章 这是 不错 妥妥 不用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 科技互联网产品 互联网科技公司华为 互联网科技未来 互联网 科技创业 互联网科技缩写 西安互联网科技公司 丰台科技园 互联网公司 衡水科技产业互联网平台 中盈科技互联网信息有限公司 哈尔滨新华互联网科技学院 随着互联网科技发展 华夏互联网科技业 互联网科技公司营业执照怎么办理 中和天地互联网科技有限公司 众安科技工业互联网合作 江苏苏星互联网科技有限公司 卡尔迅互联网科技有限公司 河南商务圈互联网科技有限公司 互联网的黑科技实验室 广州为想互联网科技有限公司 上海睿民互联网科技有限公司 江苏根荣互联网科技 互联网科技工作委员会毛军 互联网科技英文 互联网科技英文翻译 创业天下互联网科技有限公司 国大互联网教育科技有限公司薪资 新氧科技和美国互联网有关系吗 互联网科技创业有什么好项目
0