转换成欧洲联盟统计局内容表PDF叉

0

的问题

由于没有accessable API欧盟统计局的数据,每个查询应该是创造手,我找到 这个表格的内容 ,我要提取到一个可搜索的手机中。 在该文件中,有部分标题和每一片叶子有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

试试这样的,这不会是式,但对列出的文件夹中的文件可以转换为,这是如何获得这些文件:

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文件使用蟒蛇 )
  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ý
..................................................................................................................