电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

用python寫PDF轉換器的實現

瀏覽:10日期:2022-07-06 17:39:05

前言

某個夜深人靜的夜晚,夜微涼風微揚,月光照進我的書房~當我打開文件夾以回顧往事之余,驚現許多看似雜亂的無聊代碼。我拍腿正坐,一個想法油然而生:“生活已然很無聊,不如再無聊些叭”。于是,我決定開一個專題,便稱之為kimol君的無聊小發明。妙…啊~~~

想必小伙伴都經歷過,當你想要把PDF轉為WORD時,自己打字赫赫甩在你眼前:

用python寫PDF轉換器的實現

不充錢就想白嫖?? 想得美~然而,kimol君是不會退縮的,畢竟迎難而上是傳統美德。于是,今天的主題出來了:用python寫一個PDF轉WORD的小工具(基于某網站接口)。

一、思路分析

網上一搜,你可以發現很多PDF轉換的工具,其中不乏在線轉換的網站,比如這樣的:

用python寫PDF轉換器的實現

那么,通過網站提供的測試接口,我們便可以通過爬蟲模擬的方式實現轉換。沒有錯了~思路就是如此的簡單明了,今天的主角便是:https://app.xunjiepdf.com

通過抓包分析,知道這是一個POST請求,接下來用requests庫模擬即可。需要注意的是,這個接口僅用于測試,所以可供轉換的頁面等都有所限制,如需更完整的功能還請支持原版。

二、我的代碼

正所謂一萬個coders,就有一萬種codes,以下為我的代碼,僅供參考。導入相關庫:

import timeimport requests

定義PDF2Word類:

class PDF2Word(): def __init__(self): self.machineid = ’ccc052ee5200088b92342303c4ea9399’ self.token = ’’ self.guid = ’’ self.keytag = ’’ def produceToken(self): url = ’https://app.xunjiepdf.com/api/producetoken’ headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0’, ’Accept’: ’application/json, text/javascript, */*; q=0.01’, ’Accept-Language’: ’zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2’, ’Content-Type’: ’application/x-www-form-urlencoded; charset=UTF-8’, ’X-Requested-With’: ’XMLHttpRequest’, ’Origin’: ’https://app.xunjiepdf.com’, ’Connection’: ’keep-alive’, ’Referer’: ’https://app.xunjiepdf.com/pdf2word/’,} data = {’machineid’:self.machineid} res = requests.post(url,headers=headers,data=data) res_json = res.json() if res_json[’code’] == 10000: self.token = res_json[’token’] self.guid = res_json[’guid’] print(’成功獲取token’) return True else: return False def uploadPDF(self,filepath): filename = filepath.split(’/’)[-1] files = {’file’: open(filepath,’rb’)} url = ’https://app.xunjiepdf.com/api/Upload’ headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0’, ’Accept’: ’*/*’, ’Accept-Language’: ’zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2’, ’Content-Type’: ’application/pdf’, ’Origin’: ’https://app.xunjiepdf.com’, ’Connection’: ’keep-alive’, ’Referer’: ’https://app.xunjiepdf.com/pdf2word/’,} params = ( (’tasktype’, ’pdf2word’), (’phonenumber’, ’’), (’loginkey’, ’’), (’machineid’, self.machineid), (’token’, self.token), (’limitsize’, ’2048’), (’pdfname’, filename), (’queuekey’, self.guid), (’uploadtime’, ’’), (’filecount’, ’1’), (’fileindex’, ’1’), (’pagerange’, ’all’), (’picturequality’, ’’), (’outputfileextension’, ’docx’), (’picturerotate’, ’0,undefined’), (’filesequence’, ’0,undefined’), (’filepwd’, ’’), (’iconsize’, ’’), (’picturetoonepdf’, ’’), (’isshare’, ’0’), (’softname’, ’pdfonlineconverter’), (’softversion’, ’V5.0’), (’validpagescount’, ’20’), (’limituse’, ’1’), (’filespwdlist’, ’’), (’fileCountwater’, ’1’), (’languagefrom’, ’’), (’languageto’, ’’), (’cadverchose’, ’’), (’pictureforecolor’, ’’), (’picturebackcolor’, ’’), (’id’, ’WU_FILE_1’), (’name’, filename), (’type’, ’application/pdf’), (’lastModifiedDate’, ’’), (’size’, ’’),) res= requests.post(url,headers=headers,params=params,files=files) res_json = res.json() if res_json[’message’] == ’上傳成功’: self.keytag = res_json[’keytag’] print(’成功上傳PDF’) return True else: return False def progress(self): url = ’https://app.xunjiepdf.com/api/Progress’ headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0’, ’Accept’: ’text/plain, */*; q=0.01’, ’Accept-Language’: ’zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2’, ’Content-Type’: ’application/x-www-form-urlencoded; charset=UTF-8’, ’X-Requested-With’: ’XMLHttpRequest’, ’Origin’: ’https://app.xunjiepdf.com’, ’Connection’: ’keep-alive’, ’Referer’: ’https://app.xunjiepdf.com/pdf2word/’,} data = { ’tasktag’: self.keytag, ’phonenumber’: ’’, ’loginkey’: ’’, ’limituse’: ’1’} res= requests.post(url,headers=headers,data=data) res_json = res.json() if res_json[’message’] == ’處理成功’: print(’PDF處理完成’) return True else: print(’PDF處理中’) return False def downloadWord(self,output): url = ’https://app.xunjiepdf.com/download/fileid/%s’%self.keytag res = requests.get(url) with open(output,’wb’) as f: f.write(res.content) print(’PDF下載成功('%s')’%output) def convertPDF(self,filepath,outpath): filename = filepath.split(’/’)[-1] filename = filename.split(’.’)[0]+’.docx’ self.produceToken() self.uploadPDF(filepath) while True: res = self.progress() if res == True: break time.sleep(1) self.downloadWord(outpath+filename)

執行主函數:

if __name__==’__main__’: pdf2word = PDF2Word() pdf2word.convertPDF(’001.pdf’,’’)

注意:convertPDF函數有兩個參數,第一個為需要轉換的PDF,第二個參數為轉換后的目錄。run一下,一鍵入魂,'.docx'文件已經躺在了我的目錄中,舒服了~

用python寫PDF轉換器的實現

寫在最后

到此這篇關于用python寫PDF轉換器的實現的文章就介紹到這了,更多相關用python寫PDF轉換器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 压缩空气检测_气体_水质找上海京工-服务专业、价格合理 | 隧道风机_DWEX边墙风机_SDS射流风机-绍兴市上虞科瑞风机有限公司 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 高压直流电源_特种变压器_变压器铁芯-希恩变压器定制厂家 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 烽火安全网_加密软件、神盾软件官网| 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 电车线(用于供电给电车的输电线路)-百科 | 迪威娱乐|迪威娱乐客服|18183620002| 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 钢骨架轻型板_膨石轻型板_钢骨架轻型板价格_恒道新材料 | 捆扎机_气动捆扎机_钢带捆扎机-沈阳海鹞气动钢带捆扎机公司 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 【同风运车官网】一站式汽车托运服务平台,验车满意再付款 |