【发布时间】:2018-03-16 19:22:10
【问题描述】:
当我尝试以西里尔文获取数据时出现错误
import codecs
pdfFileObj = codecs.open('1.pdf', 'rb','utf-8')
错误是
'utf8' codec can't decode byte 0x9c in position 1: invalid start byte
【问题讨论】:
标签: python python-2.7
当我尝试以西里尔文获取数据时出现错误
import codecs
pdfFileObj = codecs.open('1.pdf', 'rb','utf-8')
错误是
'utf8' codec can't decode byte 0x9c in position 1: invalid start byte
【问题讨论】:
标签: python python-2.7
这是pdfminer.six的解决方案;它支持西里尔字符
from pdfminer import high_level
with open('file.pdf', 'rb') as f:
text = high_level.extract_text(f)
print(text)
【讨论】:
PDF 不是 unicode,PDF 充满了二进制流,有文本、图像等等。
看看PyPDF2。要从第一页获取文本,请执行
pdf = PdfFileReader(open('/tmp/russian.pdf', 'rb'))
text = pdf.getPage(0).extractText()
虽然您可能还需要将其转换为 windows-1251
text.encode('latin').decode('windows-1251')
【讨论】:
len(pdf.getPage(0).extractText()) — 0 个符号。