首页 > 解决方案 > 如何抓取受密码保护的 ASPX (PDF) 页面

问题描述

我正在尝试从我们代理的网络服务中抓取有关我的乐队即将演出的数据(例如场地容量、场地地址、设置长度、设置开始时间......)。

使用 Python 3.6 和 Selenium,我已经成功登录到该站点,从主页上抓取了一堆数据,然后打开了交易单,这是一个类似 PDF 的 ASPX 页面。从那里我无法刮掉交易单。我已成功将 Selenium 驱动程序切换到交易单。但是当我检查那个页面时,没有任何内容,只有一个 JavaScript 脚本列表。

我试过了...

innerHTML = driver.execute_script("return document.body.innerHTML") 

...但这会产生相同的脚本列表,而不是我可以在浏览器中看到的 PDF 内容。

我已经尝试过这里建议的解决方案:Python 从 URL 抓取 pdf

但是解决方案返回的 HTML 是用于登录页面,而不是交易单。我的问题不同,因为 PDF 受密码保护。

标签: pythonasp.netpdfweb-scrapingdownload

解决方案


您将无法使用Selenium Python API bindings读取PDF文件,解决方案是:

  1. 使用请求库从网页下载文件。鉴于您需要登录,我的期望是您可能需要通过driver.get_cookies()命令从浏览器会话中获取cookie并将它们添加到将下载 PDF 文件的请求中
  2. 下载文件后,您将能够使用例如PyPDF2读取其内容

推荐阅读