python - 如何抓取受密码保护的 ASPX (PDF) 页面
问题描述
我正在尝试从我们代理的网络服务中抓取有关我的乐队即将演出的数据(例如场地容量、场地地址、设置长度、设置开始时间......)。
使用 Python 3.6 和 Selenium,我已经成功登录到该站点,从主页上抓取了一堆数据,然后打开了交易单,这是一个类似 PDF 的 ASPX 页面。从那里我无法刮掉交易单。我已成功将 Selenium 驱动程序切换到交易单。但是当我检查那个页面时,没有任何内容,只有一个 JavaScript 脚本列表。
我试过了...
innerHTML = driver.execute_script("return document.body.innerHTML")
...但这会产生相同的脚本列表,而不是我可以在浏览器中看到的 PDF 内容。
我已经尝试过这里建议的解决方案:Python 从 URL 抓取 pdf
但是解决方案返回的 HTML 是用于登录页面,而不是交易单。我的问题不同,因为 PDF 受密码保护。
解决方案
您将无法使用Selenium Python API bindings读取PDF文件,解决方案是:
- 使用请求库从网页下载文件。鉴于您需要登录,我的期望是您可能需要通过driver.get_cookies()命令从浏览器会话中获取cookie并将它们添加到将下载 PDF 文件的请求中
- 下载文件后,您将能够使用例如PyPDF2读取其内容
推荐阅读
- python - 有没有办法把这两行代码放在一行
- reactjs - 需要帮助使用 netlify 部署 React 应用程序
- c# - 如何在列表中拆分行?
- sql - 如何在codeigniter中的两个字段之间获取数据
- javascript - 在 php 项目中使用 nsfwjs 获取本地文件
- python - Python函数多次执行
- yii2 - 带有 AdminLTE 的 Yii2 中的模态表单不起作用
- wordpress - 错误:无法升级连接:找不到容器(“wordpress”)
- javafx - 不活动时如何加载到默认网站
- nginx - 如果VisualSVN设置为Nginx proxy_pass,会自动重定向到VisualSVN端口