14

いくつかのハイパーリンクを含む PDF ドキュメントがあり、その PDF からすべてのテキストを抽出する必要があります。http://www.endlesscurious.com/2012/06/13/scraping-pdf-with-python/の PDFMiner ライブラリとコードを使用して、 テキストを抽出しました。ただし、ハイパーリンクは抽出されません。

たとえば、Check this link outというテキストにリンクが添付されています。単語を抽出することはできますCheck this link outが、本当に必要なのはハイパーリンク自体であり、単語ではありません。

どうすればこれを行うことができますか?理想的には、Python で行うことを好みますが、他の言語でも同様に行うことができます。

見たことはありますがitextsharp、使ったことはありません。私は を実行していUbuntuます。助けていただければ幸いです。

4

6 に答える 6

6

PyPDFを使えばそれができると思います。PDFからリンクを抽出したい場合。これをどこから入手したのかはわかりませんが、他のものの一部としてコードに存在します。お役に立てれば:

PDFFile = open('File Location','rb')

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

for page in range(pages):

    pageSliced = PDF.getPage(page)
    pageObject = pageSliced.getObject()

    if pageObject.has_key(key):
        ann = pageObject[key]
        for a in ann:
            u = a.getObject()
            if u[ank].has_key(uri):
            print u[ank][uri]

これにより、PDFにリンクが表示されることを願っています。PS:私はこれを広範囲に試していません。

于 2015-02-10T06:37:58.287 に答える
0

ハイパーリンクは実際には注釈になるため、「テキストを抽出する」のではなく、注釈を処理する必要があります。あなたが本当に絶望的である(そしてPostScriptでのプログラミングに慣れている)なら、itextsharp、MuPDF、またはGhostscriptなどのライブラリを使用する必要があると思います。

ただし、タイプ LNK を探して注釈を処理するのは比較的簡単だと思っていました。

于 2015-01-02T15:16:04.613 に答える
0

これは、私が見つけた最も簡単な方法で URL のリストを作成するバージョンです。

import PyPDF2

pdf = PyPDF2.PdfFileReader('filename.pdf')

urls = []
for page in range(pdf.numPages):
    pdfPage = pdf.getPage(page)
    try:
        for item in (pdfPage['/Annots']):
            urls.append(item['/A']['/URI'])
    except KeyError:
        pass
于 2019-09-27T18:04:13.260 に答える