如何从命令行获取使用javascript在该网站上显示信息的远程网页上的信息?

时间:2016-12-19 13:52:21

标签: javascript ruby web

我需要一些帮助才能从(远程)获取信息 网站。

例如,请在此处考虑此大学页面:

https://ufind.univie.ac.at/de/course.html?lv=300448&semester=2016S

这是德语但不介意;对我来说,相关部分是 “Prüfungstermine”可以翻译为“即将到来的考试”。

在我的浏览器(firefox)上,我看到下一个即将到来的考试已被标记 红色。你也可以看到它。这是在一月 2017年,17日。

我试图从命令行中从ruby获取此信息。 通常使用ruby的open-uri模块可以正常工作。

问题是该网站上的这些信息似乎没有 成为页面本身的一部分 - 不管是通过“查看源” - 但是 相反,假设,由一些javascript触发的显示器显示。

所以我不太确定我以编程方式访问的选项 这个,e。 G。来自命令行。

我仔细阅读了发送的不同页面的源代码 并找到了一两个可能相关的片段:

(1)首先,所有下一次考试都将通过名为的标签显示 模板如:

<template id="examlinelink">
  <a href="exam.html?prueid=" class="link">
    <span class="mark"><abbr title='nächster Prüfungstermin'>N</abbr></span>
    <span class="day"></span>
    <span class="date"></span>
    <span class="time"></span>
    <span class="room"></span>
  </a>
</template>

这显然是一个href超链接。好奇的是它表明了 如href'=“exam.html?prueid =”'但在我的浏览器中显示为 'https://ufind.univie.ac.at/de/exam.html?prueid=1001779&lv=300185&semester=2016S' 所以我再次假设javascript修改了href值 - 否则 我无法解释为什么它会提供更长的链接。

有没有人有任何想法或建议可以在这做什么?

当我能够以编程方式找到下一个考试时,我就可以了 可以通过正则表达式轻松获得;但我不知道该怎么做 从命令行还评估远程页面的javascript, 所以我有点不知所措。

感谢。

1 个答案:

答案 0 :(得分:0)

使用Firefox Network Monitor,您可以看到为此website下载的所有数据(css,html,js和xml)。

main.html只是一个空结构,一堆htmljs用于在其中添加信息。例如。这个htmljavascript

但数据来自哪里?只有一个xml文件,其大小约为12kb。 Bingo

确定自动执行此类任务后,您只需下载XML文件并使用nokogiri进行解析。