提取嵌入式pd

2024-10-06 09:38:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我注意到了docplayer.net嵌入许多PDF。示例:http://docplayer.net/72489212-Excellence-in-prevention-descriptions-of-the-prevention-programs-and-strategies-with-the-greatest-evidence-of-success.html

然而,使用自动化工作流提取这些PDF(即下载它们)的过程是如何工作的?在


Tags: andoftheinhttp示例netpdf
2条回答

正如您所指出的,单独获取URL会导致403个禁止。你还需要两个标题,“s”和“ex”。在

要使用Firefox获取这些信息,请打开检查器中的“网络”选项卡,然后选择“复制…”。。。复制为卷曲”。生成的curl命令将与浏览器获取资源时发出的请求完全相同。除了“s”和“ex”头文件外,您还将注意到还有一个“Range”头文件,请务必删除此文件,除非您只想下载部分文件。其余标题不相关。在

我不会把结果直接链接到这里的PDF,但我做了测试,并能够用这种技术下载整个文件。在

您可以在浏览器的开发工具Network/XHR选项卡下注意到实际的文档正在被请求。在您的特定情况下,它位于URL http://docplayer.net/storage/75/72489212/72489212.pdf。现在您可以尝试查看页面源代码,看看是否可以推断出这个URL。XPath //iframe[@id="player_frame"]/@src似乎有帮助。我还没有检查过其他页面,但我认为这样的方法可能有用(您的parse方法的一部分):

...
url_template = 'http://docplayer.net/storage/{0}/{1}/{1}.pdf'
ids = response.xpath('//iframe[@id="player_frame"]/@src').re(r'/docview/([^/]+)/([^/]+)/')
file_url = url_template.format(*ids)
yield scrapy.Request(file_url, callback=self.parse_pdf)
...

相关问题 更多 >