首页 > 解决方案 > 在 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。但是,无论出于何种原因,它都不适用于这些应用程序。

这个问题可能与使用“浏览 器截图”和一个名为html2canvas. 一种可能的解决方案可能涉及在小书签中获取和设置 cookie。理想情况下,产生正常的“https://”URL 的东西是理想的,但如果除了输出“javascript:”URL(书签)之外不可能解决问题,那么我可以接受(尽管安全影响)。谢谢。

标签: javascriptcookiesweb-applicationsbookmarklet

解决方案


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

问题 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

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

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

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

这是一个很奇怪的网站。


推荐阅读