使用Ruby网络机器人自动从网站检索数据



假设我有一个网站,当你输入你的卷号时,它会显示你的分数。你也可以通过增加自己的卷号来查看其他人的标记。

我想创建一个Excel表格来查找分数的标准差(大学项目)。

我不可能手动输入所有数据,所以我正在寻找一些自动化方法,可以为我完成这项工作,并将所有字段保存在文本文件中,我可以很容易地将其转换为表格。

背景详细信息:

链接到此处的网站。

输入在一个文本框中。单击提交后,将从服务器端生成表格并显示在网页中。

该代码看起来足够简单,web机器人可以发送请求并从生成的页面收集数据。

问题:

我不知道如何编写网络机器人在哪里编写网络机器人。我已经准备好学习编程语言了。

我已经开始学习/编码Ruby,并将在一周左右达到足够的水平。但我仍然需要帮助来找到我的方法,如何做到这一点。

如果您需要查看web链接和生成的页面,请随时使用我的卷号:5675351

首先,您需要一个能够发出POST请求的ruby库。比如法拉第。然后,您将发出一个带有参数散列的POST请求(填写表单)。在您的情况下,参数的名称是"regno"(查看页面的html源代码自己计算),并且该值是您想要提取数据的数字。

在这个阶段,您将拥有的是带有结果的html页面的来源。

结果大致相同:

<tr bgColor="#ffffff">
    <td align="middle"><font face="Arial" size=2> 301</font></td>
    <td align="left" ><font face="Arial" size=2>ENGLISH CORE</font></td>
    <td align="left" ><font face="Arial" size=2>084&nbsp;&nbsp;&nbsp;&nbsp;</font></td>
    <td align="middle"><font face="Arial" size=2>A2</font></td>
  </tr>

只有tr的bgColor不同,当然还有数据。例如,您需要使用正则表达式提取所有这些块。您可以做得更好,使用另一个ruby库Nokogiri的XPath特性。你需要自己查找这两个。

当你有了所有的数据,你就不需要创建Excel表了——Ruby能够自己做这样简单的数学运算。

我建议仔细阅读上述两个库的所有示例,并将所有相关的库应用于您的特定任务。Ruby实际上是这类任务的一个很好的选择,因为库大多都很好,而且启动起来很轻松。然而,没有编程经验会使事情变得复杂。

最新更新