2

有一个网站,提供我想要获取的数据。但是下载表格允许小部分下载,所以我需要填写它并按“下载”按钮大约 18000 次。在该网站的一个论坛上,管理员说,使用此表单下载数据是获取数据的唯一方法,并且有些人编写脚本来自动化该过程,如果他们不同时启动多个下载,则此类脚本是合格的。我想写这样的脚本,但我不知道从哪里开始,因为我不熟悉网页与服务器的交互。

我有一些编写 C/C++ 程序的经验,并且我知道一些 bash 脚本。我知道 html 的基础知识,但我不太了解 html 表单是如何工作的。我通常在 Ubuntu 中工作,如果需要,我也安装了 Windows 7。

请告诉我,从哪里开始:我可以使用哪些工具以及我应该学习哪些概念来解决这个任务,哪些书籍/教程/文章可能对我在这个方向上的教育有所帮助。

特别是,我知道的语言(C++、bash 脚本)是否适合这种脚本,或者学习其他语言更好?您使用哪些程序来理解,脚本应该向服务器发送什么以及它应该如何接收文件?

4

1 回答 1

2

这种事情称为网络抓取。有多种方法可以做到这一点。一个名为curl的命令行工具允许您以与浏览器相同的方式从网站获取资源。然而,它是可编写脚本的,您可以将参数传递给它以使其像浏览器一样工作。

通常,我会使用 Python 之类的脚本语言来执行此操作,但可以使用 bash 脚本和 curl 来执行此操作,尽管更难。当您单击提交按钮时,您需要弄清楚您向网站提交的确切内容。firefox 插件firebug可以帮助你解决这个问题,然后使用 curl 做同样的事情。将 curl 调用置于循环中并改变参数以模拟 18000 次点击。

于 2012-05-16T09:48:55.997 回答