1)camelot方法有兩種解析模式:流解析(stream)、格子解析(lattice),其中格子解析能夠保留表格完整的樣式,對于復雜表格來說要優(yōu)于流解析模式。同時,camelot方法默認格子解析(lattice),而采用這種解析方式,需要安裝ghostscript。因此,僅通過pip命令安裝的camelot,代碼運行時通常會報錯。需要下載ghostscript.exe并安裝。安裝后,經測試,并不需要在代碼中import ghostscript。 2)camelot輸出格式如果選擇csv格式,可能存在中文亂碼問題,需要用文本編輯器將導出的csv文件編碼改為ansi格式。 3)后來在另外一臺電腦上安裝camelot庫時出現(xiàn)了一個奇葩的問題,程序運行報錯。反復檢查才發(fā)現(xiàn)原因。首先是在這臺電腦上,我是按照印象輸入pip install camelot,也安裝成功。但代碼運行錯誤。經查閱,正確命令(或者說版本)是pip install camelot-py[cv]。 所以我先uninstall前面安裝的camelot,又重新按照正確的命令安裝camelot-py[cv],但代碼運行時又提示import xlwt有問題,在python庫中檢查了下,xlwt文件是正常的,找了半天沒找到原因。后來單獨卸載xlwt,然后重新pip安裝xlwt,發(fā)現(xiàn)xlwt的版本號由0.7變?yōu)?.3,然后一切就正常了。估計是之前錯誤安裝了camelot的版本,導致順帶安裝的xlwt版本過低,無法兼容python3.6.5。 4)camelot開始時一切正常,但處理一個pdf文件時突然報錯:pdfminer.psparser.SyntaxError: Invalid dictionary construct: [/'Type', /'Font', /'Subtype', /'Type0', /'BaseFont', /b"b'", /"ABCDEE+\\xcb\\xce\\xcc\\xe5'", /'Encoding', /'Identity-H', /'DescendantFonts', <PDFObjRef:11>, /'ToUnicode', <PDFObjRef:19>] 經百度,找到解決方案,修改了pandas和PyPDF2模塊的三處源碼,恢復正常。具體修改內容見python爬蟲處理在線預覽的pdf文檔 |
|