【问题标题】:Automate data retrieval from a web site using a Ruby web bot使用 Ruby Web 机器人从网站自动检索数据
【发布时间】:2013-08-04 18:54:34
【问题描述】:

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

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

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

背景详情:

链接到网站here

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

代码看起来很容易让网络机器人发送请求并从生成的页面收集数据。

问题:

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

我已经开始学习/编写 Ruby 并且将在一周左右的时间内达到足以完成这项工作的水平。但我仍然需要帮助才能找到自己的方式,以及如何去做。

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

【问题讨论】:

    标签: ruby database automation bots


    【解决方案1】:

    首先,您需要一个可以发出 POST 请求的 ruby​​ 库。如Faraday 。然后你将发出一个带有参数散列的 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 和数据当然不同。例如,您需要使用regular expression 提取所有这些块。您可以做得更好,并使用另一个 ruby​​ 库 Nokogiri 的 XPath 功能。这两个需要自己查。

    当您拥有所有数据时,您无需创建 Excel 表格 - Ruby 能够自行完成如此简单的数学运算。

    我建议浏览两个提到的库的所有示例,并将所有相关的库应用于您的特定任务。对于此类任务,Ruby 实际上是一个不错的选择,因为库大多都很好,而且启动起来很轻松。但是没有编程经验会使事情变得复杂。

    【讨论】:

    • 谢谢!这就是我需要知道的。我有初步的编程技能,所以学习一门新语言不会成为问题。
    猜你喜欢
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多