python - 从 aspx 页面解析动态生成的 url
问题描述
我正在尝试解析一个包含表格的 aspx 页面,每一行都有一个元素,可以在新选项卡上打开一个 pdf 文件。
元素打开的 url 以页面源中的表单形式存储在脚本中,但似乎只有在您实际单击元素后才会为每个文件生成脚本。
我的最终目标是保存所有这些 pdf 文件,我认为最好的解决方案是保存 url 并使用请求来保存每个 url 的内容。但是如果不实际单击每个元素,我找不到获取所有 url 的方法。
单击元素后脚本的 HTML:
<script language="JavaScript">
var docUrl=escape('/NGCS.Web.Secured/Viewer/NGCSViewerPage.aspx?DocumentNumber=4105ea67709148d7984ce9a2efc48157');
window.open(unescape(docUrl)); </script>
此示例中的所需值是“docUrl”中列出的字符串,即:'/NGCS.Web.Secured/Viewer/NGCSViewerPage.aspx?DocumentNumber=4105ea67709148d7984ce9a2efc48157',或字符串中的“DocumentNumber”,即:'4105ea67709148d7984ce9a2efc48157'。
这些值中的任何一个都可用于导航到包含所需文件的页面的动态 url。
找不到与我的问题类似的东西。
解决方案
你没有提供太多关于如何持有这个对象的信息,所以我假设它是一个字符串。您可以使用正则表达式来获取文档编号,如下所示:
import re
s = ''' <script language="JavaScript">
var docUrl=escape('/NGCS.Web.Secured/Viewer/NGCSViewerPage.aspx?DocumentNumber=4105ea67709148d7984ce9a2efc48157');
window.open(unescape(docUrl)); </script>'''
print(re.search('DocumentNumber=([\w]+)',s).groups())
推荐阅读
- python-3.x - 存在视图时,Postgres 无法删除表
- javascript - 困惑的console.log在排序操作之前输出一个排序数组
- git - Git-Intellij:远程分支未显示在本地存储库中
- android - 如果邮件来自 Android 解析服务器的 esuario,我如何调用用户名?
- javascript - 如何使用云功能将 CSV 文件上传到 Firebase 存储?
- python - /admin/weather/comment/ 处的 OperationalError 没有这样的列:weather_comment.author_id
- shopify - 为 Shopify 用户搭建第三方工具,如何访问数据?
- java - 我从 github 安装了 kotlin,但它在 cmd 中不起作用
- r - 复制 CRAN valgrind 问题
- java - Java - 在 if-else 中不更改 int