>  기사  >  백엔드 개발  >  Python은 PDF 콘텐츠를 읽습니다.

Python은 PDF 콘텐츠를 읽습니다.

高洛峰
高洛峰원래의
2016-11-22 16:44:511837검색

1. 소개

밤에 "Python Network Data Collection"이라는 책을 읽다가 PDF 콘텐츠를 읽는 코드를 본 것이 며칠 전에 Jisouke가 방금 웹 페이지 pdf를 공개한 것이 기억났습니다. 캡처. 콘텐츠 크롤링 규칙을 사용하면 이 규칙은 웹 페이지 크롤링을 위해 PDF 콘텐츠를 HTML로 처리할 수 있습니다. 이런 마법은 PDF를 구문 분석하고 PDF 형식을 div 태그와 같은 HTML 태그로 변환하는 Firefox의 기능 덕분에 GooSeeker 웹 크롤링 소프트웨어를 사용하여 일반 웹 페이지처럼 구조화된 콘텐츠를 크롤링할 수 있습니다.

이것은 Python 크롤러를 사용하여 어디까지 달성할 수 있는지에 대한 질문을 제기합니다. 실험 과정과 소스 코드는 다음과 같습니다.

2. pdf를 텍스트로 변환하는 Python 소스 코드

다음 Python 소스 코드는 (인터넷 또는 로컬에서) pdf 파일의 내용을 읽어서 텍스트로 변환하고 인쇄합니다. 밖으로 . 이 코드는 주로 타사 라이브러리 PDFMiner3K를 사용하여 PDF를 문자열로 읽은 다음 StringIO를 사용하여 이를 파일 개체로 변환합니다. (소스 코드 다운로드 주소는 기사 마지막에 있는 GitHub 소스를 참조하세요)

from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open

def readPDF(pdfFile):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, laparams=laparams)

    process_pdf(rsrcmgr, device, pdfFile)
    device.close()

    content = retstr.getvalue()
    retstr.close()
    return content

pdfFile = urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()

PDF 파일이 컴퓨터에 있는 경우 urlopen에서 반환된 pdfFile 객체를 일반 open()으로 바꾸세요. 파일 객체.

3. Outlook

이 실험은 pdf를 텍스트로 변환만 하고, 처음에 언급한 것처럼 html 태그로 변환하지는 않습니다. 따라서 Python 프로그래밍 환경에서 이 기능을 사용할 수 있는지 여부는 아직 결정되지 않았습니다. 앞으로 탐험해 보세요.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.