Python、PHP还是其他什么脚本语言最适合自动化网页交互任务?

-1 投票
3 回答
4589 浏览
提问于 2025-04-15 19:55

我想知道,做以下事情最适合用什么脚本语言:

我访问这个网站:

http://structure.usc.edu/make-na/server.html

然后我输入两行字符串,比如:

ATGC
TATG

接着我点击“Make NA”按钮,下载生成的文件,并在下载前改个名字。

我想对10000个不同的输入字符串做这个操作,这样我就能轻松下载不同名字的文件。

我想知道,做这个事情最合适的网页脚本语言是什么(这样说对吗?),我想深入学习一下。我听说过Python,还有人认为PHP或Ruby更好。我只是想知道哪种语言最友好(同时对我的需求也有帮助)。

如果能给我一些实现这个想法的建议,那就太好了。

谢谢!

3 个回答

0

Mechanize库可以在Perl、Python和Ruby中使用,但在PHP中没有(公开的)版本。Perl是最早的版本,而我只用过Ruby,所以我只能全心全意推荐Ruby。这个库几乎可以满足你想做的任何事情,并且它和Nokogiri配合得很好。Nokogiri是一个很棒的库,可以用来解析HTML、XML等内容。(实际上,它不仅和Nokogiri配合得很好,还在内部使用了Nokogiri,所以你肯定能用到Nokogiri的所有功能。)

不过,有一个缺点。如果你需要登录一个网站,而这个网站使用基于会话的认证,并且会话cookie是通过在浏览器中运行的JavaScript设置的(而不是通过HTTP头),那么据我所知,Mechanize是无法做到这一点的。

在Ruby中,你还有其他几个选择,比如Capybara和Selenium(它们可以控制Firefox、Chrome、IE,可能还有Safari)。实际上,自动化浏览器的速度会比使用Mechanize慢,但它能实现一些Mechanize无法做到的事情。

你也可以考虑使用PhantomJS和CasperJS。因为它们是用JavaScript写的,所以运行JavaScript来设置会话cookie应该不是问题。

所以简单来说,我会选择Ruby或JavaScript作为编程语言,然后根据你的需求选择上面提到的选项之一。

0

其实,编程语言并不是特别重要。你可以在 Python 或 PHP 中使用 curl 来完成任务。我曾经用 curl 在 Python 和 PHP 中写过一个复杂的网页表单自动化脚本。其实,如果你对命令行熟悉的话,也可以直接在命令行中操作,然后把它做成一个批处理文件或脚本。

cURL

2

最简单的回答就是:用你已经很熟悉的编程语言。如果你还不懂任何语言,那就选择一种来学习(这个选择应该考虑更多的因素,而不仅仅是这个任务),然后用它来完成这个任务。

就我个人而言,我会选择用Python,配合mechanize模块

另外,如果你对Python和PHP都不熟悉,建议你选择Python。因为Python的用途更广泛,而且通常来说,它是一个更适合初学者的编程语言。

撰写回答