从 PDF 中提取 URL - 文本与 URL 不匹配

发布于 2025-01-15 18:11:03 字数 907 浏览 0 评论 0原文

我使用以下代码从 PDF 中提取 URL,提取锚点效果很好,但当锚文本与其后面的 URL 不同时则不起作用。 例如:“www.page.com/A”在文本中用作短网址,但其后面的实际网址是较长(完整)版本。

我使用的代码是:

import urllib.request
import PyPDF2

urllib.request.urlretrieve(url, "remoteFile")
pdfFile = PyPDF2.PdfFileReader("remoteFile", strict=False)

key = "/Annots"
uri = "/URI"
ank = "/A"
mylist = []

for page_no in range(pdfFile.numPages):
    page = pdfFile.getPage(page_no)
    text = page.extractText()
    pageObject = page.getObject()
    if key in pageObject.keys():
        ann = pageObject.keys()
        for a in ann:
            try:
                u = a.getObject()
                if uri in u[ank].keys():
                    mylist.append(u[ank][uri])
                    print(u[ank][uri])
            except KeyError:
                pass

正如我所说,如果锚点和链接相同,它就可以正常工作。如果链接不同,则会保存锚点。理想情况下,我会保存两者(或仅保存链接)。

I'm using following code to extract URLs from PDF and it works fine to extract the anchor but does not work when anchor text is different than the URL behind it.
For example: 'www.page.com/A' is used as a short url in the text but the actual URL behind it is a longer (full) version.

The code I'm using is:

import urllib.request
import PyPDF2

urllib.request.urlretrieve(url, "remoteFile")
pdfFile = PyPDF2.PdfFileReader("remoteFile", strict=False)

key = "/Annots"
uri = "/URI"
ank = "/A"
mylist = []

for page_no in range(pdfFile.numPages):
    page = pdfFile.getPage(page_no)
    text = page.extractText()
    pageObject = page.getObject()
    if key in pageObject.keys():
        ann = pageObject.keys()
        for a in ann:
            try:
                u = a.getObject()
                if uri in u[ank].keys():
                    mylist.append(u[ank][uri])
                    print(u[ank][uri])
            except KeyError:
                pass

As I said, it works ok if the anchor and the link are the same. If the link is different, it saves the anchor. Ideally I would save both (or just link).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文