我需要一些帮助才能从(远程)获取信息 网站。
例如,请在此处考虑此大学页面:
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, 所以我有点不知所措。
感谢。
答案 0 :(得分:0)
使用Firefox Network Monitor,您可以看到为此website下载的所有数据(css,html,js和xml)。
main.html
只是一个空结构,一堆html
和js
用于在其中添加信息。例如。这个html和javascript。
但数据来自哪里?只有一个xml
文件,其大小约为12kb。 Bingo
确定自动执行此类任务后,您只需下载XML文件并使用nokogiri进行解析。