色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

用python寫PDF轉換器的實現

瀏覽:12日期: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 編程
相關文章:
主站蜘蛛池模板: 久艹在线观看 | 国产日韩欧美三级 | 国产国模福利视频 | 亚洲国产精品日韩高清秒播 | 精品国产高清在线看国产 | 成人黄色免费观看 | 欧美视频精品一区二区三区 | 国产特黄特色一级特色大片 | 老司机午夜精品网站在线观看 | 亚洲激情黄色 | 99国产在线播放 | 精品久久久久久久久中文字幕 | 亚洲免费精品 | 欧美一级成人毛片视频 | 深夜福利网站在线观看 | 狠狠色综合久久婷婷 | 成年视频国产免费观看 | 国产美女做爰免费视 | 欧美国一级毛片片aa | 男人天堂网站在线 | 国产精品九九久久一区hh | 国产激情视频网站 | 99re热这里只有精品视频 | 久草视频免费在线观看 | 全国男人的天堂网 | 精品免费视频 | 草草视频手机在线观看视频 | 九九精品在线观看 | 做爰www免费看视频 1024色淫免费视频 | 91探花福利精品国产自产在线 | 中文字幕亚洲综合久久 | 老师张开腿让我爽了一夜视频 | 成人免费久久精品国产片久久影院 | 国产一区二区三区免费看 | 国产99视频免费精品是看6 | 国产成人不卡亚洲精品91 | 1024国产欧美日韩精品 | 国产一级第一级毛片 | 欧美最爽乱淫视频播放黑人 | 国内精品91久久久久 | 国产一级特黄a大片99 |