我想观看网页中的更改,但我不知道如何获取 URL 以将其添加到观察器。
这就是您到达所需页面的方式。首先你去这个page . (如果您遇到服务暂时不可用错误,请尝试强制重新加载,Shift+单击重新加载或使用 Alt+< 在新页面中打开它kbd>简介)
有几个项目以“Convocatoria”开头。每个项目都有几个部分:OPE、Tipo de personal 等,然后是 4 个链接。单击第三个 (Tablón de anuncios) 时重定向到的页面是我感兴趣的页面。选择一个(例如第一个)并单击 Tablón de anuncios . 高亮部分是要看的,即是否有任何行添加到表中(只有一个ATOW)。
检查元素(第三个链接)显示
<a onclick="submitForm('_id2',1,{source:'_id63'});return false;" class="x8w" href="#">Tablón de anuncios</a>
函数 submitForm
位于 https://sede.cordoba.es:4443/seleccion/web-empleo/adf/jsLibs/Common10_1_3_4_0.js
(第 2749 行) .如果我在那个函数的开头设置一个 break,一步一步,我到达 3013 行
form.submit();
这就是我所知道的。页面加载但加载的资源是图片、css、js 等。我在 Network 中看到的唯一页面具有与第一个相同的 URL (...faces/empleo.jspx
)。
如果您可以轻松推断出
submitForm('_id2',1,{source:'_id63'})
是如何转换的,则有效答案是“这是您需要的 URL”进入该网址。或者你解释一下 Action 的路径就可以找出来。或者有记录的来源以及为什么这是不可能的解释(无需入侵服务器等)。
Android 中的解决方案(或看起来如此)
在寻找关于这个主题的信息时,我偶然发现了这个 free Android app (还有一个专业版,但你不需要它)所以我试了一下。它有一个嵌入式浏览器:你可以打开一个页面,导航到你想要的任何地方,在最终页面中选择一个元素(或它们的一组)并观看它/它们。
我导航到我需要的页面,选择了表格,程序只显示了其中的文本以比较更改,所以我想当有新行时它会提醒我。
您可以配置每个警报是否使用javascript,所以我选择使用它。现在,它没有显示任何警报,所以它似乎到达了所需的页面,而不是我打开的第一个页面,但是在有变化之前你不能确定(并且不知道什么时候会,但我'我会在这里通知结果)。
我更喜欢 Windows 的 watch (我会继续搜索),但现在我有足够的信心。观看页面时,我更喜欢使用两种不同的解决方案以防万一,这里更是如此。
几乎解决方案
Marks Polakovs 提供的curl
命令给了我一个想法。如果您可以将预期的页面(使用 curl
或其他)下载到 文件夹
中的 file.htm
,则很容易启动 localhost
web 服务器(我知道 PHP 和 python 会这样做,但肯定有很多)共享那个 path
并观看 localhost/file.htm
进行更改。
然后您所要做的就是每 x 分钟/小时运行一次 Windows 任务以刷新 file.htm
。我假设一个 headless 浏览器(PhantomJS 或类似的)会完成下载工作,实际上是单击链接并保存页面,但我实际上不知道如何做吧。
没有答案提供其想法概念的有效证明,但至少 Marks Polakovs 尝试了它并给出了有值(value)的提示,所以我会赞成它,系统会给他分配赏金。
最佳答案
单步执行 onclick
处理程序的代码,您会发现在某些时候它会找到 ID 为 _id2
的表单(第 2775 行),并且在通过 hidden 添加一些参数之后字段 ({source:'_id63'}
),提交它。 (要找出这一点,请在 Chrome DevTools 中打开 Common10_1_3_4_0.js
,在第 2758 行放置一个断点,然后逐步执行。)请求本身是一个 POST 到 https://sede.cordoba.es:4443/seleccion/web-empleo/faces/empleo.jspx
具有以下 POST 参数:
oracle.adf.faces.FORM: _id2
oracle.adf.faces.STATE_TOKEN: 5
event:
source: _id63
其中一些已经存在于表单的 HTML 中,而另一些则是由 submitForm()
添加的。
因此,要回答您的问题,您的 HTTP 观察器将需要支持 POST,如果支持,请添加带有这些参数的 URL。
编辑:这是一个 cURL 命令(针对 Windows cmd 进行了转义):
curl -X POST "https://sede.cordoba.es:4443/seleccion/web-empleo/faces/empleo.jspx" --data "oracle.adf.faces.FORM=_id2^&oracle.adf.faces.STATE_TOKEN=9^&event=^&source=_id63"
关于javascript - 使用 session 哈希观察 .jspx 页面中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51186968/