簡體   English   中英

Pypdf 從一個 PDF 中提取代碼,而不是從另一個?

[英]Pypdf extracts code from one PDF, but not from another?

我正在嘗試為我自己的 pdf 文件制作一個原始爬蟲。 為此,我使用Pypdf提取數據(客戶、產品、金額等)並使用該數據。

現在,我有了代碼,它非常簡單,但是當我在谷歌的一些隨機 PDF 上嘗試它時,它似乎無法從我的 PDF 中提取任何東西,它可以工作。 我嘗試使用我的多個文檔,pdf,不工作,隨機 pdf 從互聯網上工作。

我使用 Spyder。

下面是我正在使用的代碼:

import PyPDF2 as p2

PDFfile=open("pdf_barrierefrei.pdf","rb") # Random PFD off the Internet
pdfread = p2.PdfFileReader(PDFfile)

x = pdfread.getPage(0)
print(x.extractText())
PDFfile.close

PDFfile=open("2.pdf","rb")
pdfread = p2.PdfFileReader(PDFfile) # My PDF

y = pdfread.getPage(0)
print(y.extractText())
PDFfile.close

我的預期 output 是一串混搭數據,它是我的 PDF 的一部分,例如客戶、我的姓名、日期等,然后我對其進行排序並清除。

實際結果是:

" " "

或者半頁什么都沒有,只是“In [40]:”,然后是字面上的 20 句什么都沒有,沒有錯誤或任何東西

output 來自隨機 Pdf:

"

" "

這只是一些隨意的塗鴉,不關心內容,只是它給我一些文字。

我對編碼真的很陌生,我不知道從哪里開始,因為它們都是 PDF。 我只是想知道是不是因為我使用“打印到 PDF”來創建它們?

對於 pdf_barrierefrei.pdf,看起來文本結果轉換為 unicode 格式。 順便說一句,我使用的是 jupyther notebook 而不是 spyder,所以我得到了正確的結果。

對於 2.pdf,pdf 有一個圖像標志和表格。 安裝 tika (pip install tika) 然后使用下面的代碼將非圖像讀入文本。

from tika import parser
raw = parser.from_file('2.pdf')
print(raw['content'])

結果:

產品列表 Schickmaier Excel.xlsx

利弗申

Kunde 客戶地址

地址數據數據

K/DB-編號 211 聯系方式

Preis/NM Gesamtpreis

Bio Erdbeer-Chilischokolade 3,05 € 20 61,09 €
Bio Beuscherl 5,23 € 6 31,36 €
Bio ChiliconCarne 5,98 € 15 89,77 €
Bio Geschnetzeltes 5,23 € 15 78,41 €

Versand Brutto Versand Netto - €

Warenwert netto 10% 260,64 €
Umsatzsteuer 10% 26,06 €

RECHNUNGSBETRAG BRUTTO 286,70 €
網站 1/1

2019/

數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM