捕获 URL 中网页的状态

问题描述

我发现自己不得不与一个在不同地方隐藏状态的网页进行交互,因此人们无法轻松地将其作为 URL 共享,例如这个允许用户从城市分区应用程序中查找信息的页面

https://aca.cityofberkeley.info/community/Default.aspx

您可以随心所欲地与页面进行交互,但地址栏中的 URL 将保持与上述相同。

目前,市政府工作人员为用户提供了诸如“加载此 URL,单击‘分区’选项卡,在‘许可证编号’字段下输入 DRCP2020-0010,单击‘搜索’,然后当记录出现​​时,单击“记录信息”,然后从下拉菜单中选择“附件”,然后单击显示“2020-10-21_DRCP_APP_PCKT_2801 Adeline.pdf”的 PDF 文档。我希望能够用 URL 替换这些说明。

一个例子是存档市议会会议视频的网站:

http://berkeley.granicus.com/MediaPlayer.php?publish_id=cbebb4e6-5b83-11eb-920e-0050569183fa

如果能够生成一个链接显示其中一个会议视频,并寻求某个时间戳(例如 53:40),这样我就可以参考会议上所说的具体内容,那就太好了。

查看我在每种情况下按照说明加载的页面,可以看到有一些 POST 表单、cookie、隐藏输入字段等。

是否有某种工具可用于创建此类页面的“深层链接”,这些页面是使用非 URL 隐藏状态生成的,这将使我能够快速与其他用户分享我正在查看的内容?

我正在寻找类似于 frmget “书签”,它更改页面上的表单以使用 GET 而不是 POST。有时这会成功生成捕获表单提交查询参数的 URL。但是,无论出于何种原因,它都不适用于这些应用程序。

这个问题可能与capturing a web page's DOM state using "browser screenshots" and a script called html2canvas 的想法有关。一个可能的解决方案可能涉及 getting and setting cookies in a bookmarklet。理想情况下,产生一个正常的“https://” URL 的东西是理想的,但如果除了输出“javascript:”URL(书签)之外无法解决问题,那么这对我来说是可以接受的(尽管安全影响)。谢谢。

解决方法

这似乎不是编程问题。该网站似乎也存在一些安全问题。

问题 A:关于分区

这里有一些你可以使用的链接

  1. 指向分区的直接链接(我是通过网站的高级搜索找到的):

https://aca.cityofberkeley.info/CitizenAccess/Cap/CapHome.aspx?module=Planning&TabName=Planning&TabList=Home%7C0%7CBuilding%7C1%7CHousing%7C2%7CPlanning%7C3%7CFire%7C4%7CLicenses%7C5%7CPublicWorks%7C6%7CCurrentTabIndex%7C3

  1. 文件列表的奇怪链接(我通过下载文件找到它,然后转到 chrome://downloads,然后右键单击我下载的文件。链接如下):

https://aca.cityofberkeley.info/CitizenAccess/FileUpload/AttachmentsList.aspx?iframeid=ctl00_PlaceHolderMain_attachmentEdit&module=Planning&isInConfirm=False&isdetail=True&isaccountmanager=False&isAdmin=True&isPeopleDocument=&agencyCode=BERKELEY&isForConditionDocument=N

它仍然没有给出文件的直接链接,但它给出了先前打开的分区记录的附件列表。

目前我不知道 javascipt:__doPostBack('attachmentList$gdvAttachmentList$ctl02$lnkFileName','') 触发了什么文件。

无论如何,根据我们所拥有的,第一步和第二步似乎最小化了下载文件的路径。我想可能有一种直接下载文件的方法,但我目前没有看到任何简单的方法。也许其他人可以弄清楚。

问题 B:关于视频

我使用了一个 embed 链接,其中显示了所有可以使用的属性。

有一种非常奇怪但有效的方法来给出确切的时间戳。从以下链接更改 starttime

https://berkeley.granicus.com/MediaPlayer.php?publish_id=cbebb4e6-5b83-11eb-920e-0050569183fa&starttime=0&stoptime=undefined&autostart=1

因此将 0 替换为 3600 将使视频快退一小时(3600 秒):

https://berkeley.granicus.com/MediaPlayer.php?publish_id=cbebb4e6-5b83-11eb-920e-0050569183fa&starttime=3600&stoptime=undefined&autostart=1

这里的问题是......你不能手动倒回那个特定的小时(它只是被裁剪掉了)。但它可以显示确切的剧集。

这是一个很奇怪的网站。