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

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

用python寫PDF轉換器的實現

瀏覽:7日期: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 編程
相關文章:
主站蜘蛛池模板: 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 电缆接头_防水接头_电缆防水接头_防水电缆接头_上海闵彬 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 新疆系统集成_新疆系统集成公司_系统集成项目-新疆利成科技 | 搪瓷搅拌器,搪玻璃搅拌器,搪玻璃冷凝器_厂家-淄博越宏化工设备 | 道康宁消泡剂-瓦克-大川进口消泡剂供应商| 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 数字展示在线_数字展示行业门户网站 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 嘉兴泰东园林景观工程有限公司_花箱护栏| 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 石栏杆_青石栏杆_汉白玉栏杆_花岗岩栏杆 - 【石雕之乡】点石石雕石材厂 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | 好杂志网-首页| 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | 福建自考_福建自学考试网 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 湿地保护| 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | 瓶盖扭矩仪(扭力值检测)-百科 | 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 缓蚀除垢剂_循环水阻垢剂_反渗透锅炉阻垢剂_有机硫化物-郑州威大水处理材料有限公司 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 |