변환 통계청 내용의 테이블 PDF JSON

0

질문

이 없기 때문에 접근 가능한 API 를 통계청 데이터 쿼리 만들어야 하는 수동으로 발견했 이 테이블의 내용 하고 싶을 추출하여 검색할 수 있 JSON. 파일에 있는 섹션 타이틀,그리고 각각의 잎은 3 링크,하지만 어떻게 연결할 수 있습니 링크 제목과 섹션으로 JSON?

내가 이 기본 코드:

PDFFile = open("table_of_contents_en.pdf",'rb')

PDF = PyPDF2.PdfFileReader(PDFFile)
pages = PDF.getNumPages()
key = '/Annots'
uri = '/URI'
ank = '/A'

for page in range(1,2):
    print("Current Page: {}".format(page))
    pageSliced = PDF.getPage(page)
    pageObject = pageSliced.getObject()
    if key in pageObject.keys():
        ann = pageObject[key]
        for a in ann:
            u = a.getObject()
            if uri in u[ank].keys():
                print(u[ank][uri])

이 텍스트를 위한:

pdfFileObj = open('table_of_contents_en.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
print(pdfReader.numPages)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
pdfFileObj.close()

이 다운로드를 위해 지퍼로 잠급:

for page in range(1,2):
    print("Current Page: {}".format(page))
    pageSliced = PDF.getPage(page)
    pageObject = pageSliced.getObject()
    if key in pageObject.keys():
        ann = pageObject[key]
        for a in ann:
            u = a.getObject()
            if uri in u[ank].keys():
                print(u[ank][uri])
            if str(u[ank].keys()).find(".tsv.gz") != -1 :
                url = str(u[ank].keys())
                r = requests.get(url, allow_redirects=True)
                print(str(str(str(u[ank].keys()).split("/")[-1]).split(".")[0])
                open(str(str(str(u[ank].keys()).split("/")[-1]).split(".")[0]), 'wb').write(r.content)

하지만 이렇게 하려면 어떻게 해야 합니까 같은 시간에 올바르게,일부에서는 구조화된 데이터가?

database json pdf python
2021-11-21 05:20:43
1

최고의 응답

0

하려고 다음과 같이,이되지 않습니다 JSON 지만,파일의 목록에서 폴더로 변환할 수 있는 방법을 다음과 같습니다 파일을 얻을:

import PyPDF2
import requests

PDFFile = open("table_of_contents_en.pdf",'rb')

PDF = PyPDF2.PdfFileReader(PDFFile)
pages = PDF.getNumPages()
key = '/Annots'
uri = '/URI'
ank = '/A'

for page in range(pages):
    print("Current Page: {}".format(page))
    pageSliced = PDF.getPage(page)
    pageObject = pageSliced.getObject()
    if key in pageObject.keys():
        ann = pageObject[key]
        for a in ann:
            u = a.getObject()
            # if uri in u[ank].keys():
            #   print(u[ank][uri])
            if str(u[ank][uri]).find(".tsv.gz") != -1 :
                url = str(u[ank][uri])
                try:
                    r = requests.get(url, allow_redirects=True)
                    print(str(str(str(url).split("/")[-1]).split(".")[0]))
                    open(str(str(url).split("/")[-1]), 'wb').write(r.content)
                except:
                    print("ERROR ON" + url)

사용법:

  1. 다운로드 테이블의 내용이 파일에서 통계청: http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?sort=1&file=table_of_contents_en.pdf
  2. 실행 python3 위의 코드,편집 가진 파일 이름을 경우에는 변경되었습니다.
  3. 추출물과 함께 몇 가지 도구를 다운로드 .gz 파일 (제안 하는 방법을 압축을 풀 gz 를 사용하여 파일 Python )
  4. 삭제 .gz 파일이 있습니다.

전체 코드: https://github.com

2021-11-21 16:14:06

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................