Scripting 自动浏览网站的编程语言?

Scripting 自动浏览网站的编程语言?,scripting,Scripting,我已经编程多年了,我只有一个问题 什么编程语言允许您创建可以自动浏览网站和执行各种操作的程序?例如,登录、浏览到特定页面、填写表单、提取特定文本等等 这与宏不同,因为宏只执行一组预定义的操作。另一方面,根据屏幕上显示的内容,程序的行为会有所不同 也许是某种脚本语言?或通用语言。非常感谢您的回答。您可以在Perl中使用 你可以在网上找到很多信息,但这是关于Perlmonks的教程。现在几乎任何语言都可以做到这一点,linux中的perl、php/curl和Windows中的asp/C 检查此项-您

我已经编程多年了,我只有一个问题

什么编程语言允许您创建可以自动浏览网站和执行各种操作的程序?例如,登录、浏览到特定页面、填写表单、提取特定文本等等

这与宏不同,因为宏只执行一组预定义的操作。另一方面,根据屏幕上显示的内容,程序的行为会有所不同

也许是某种脚本语言?或通用语言。非常感谢您的回答。

您可以在Perl中使用


你可以在网上找到很多信息,但这是关于Perlmonks的教程。

现在几乎任何语言都可以做到这一点,linux中的perl、php/curl和Windows中的asp/C


检查此项-

您可以使用C中的对象完成所有这些操作#


我相信您不是在寻找一种语言,而是一种允许您这样做的框架。这通常由以下人员完成。有一些在线服务,例如,允许你做简单的事情。还有一些框架可以帮助您以更严格的方式执行相同的操作。我有一些经验,我认为这是最丰富的功能之一

另一种类型的框架是web crawler,它可以浏览一个网站并对其进行索引(就像搜索引擎一样)。

对于Perl来说,是导航网站的标准工具。它处理cookie、会话、知道如何与表单交互、执行单击等。它在运行过程中保持状态


它的一个缺点是不处理javascript。有一些Perl模块可以与javascript交互,但它们没有与WWW::Mechanize集成。

我当然会选择一些脚本语言,Ruby/Mechanize是我最喜欢的,看看一些……Perl和Python当然也是不错的选择。除非有计划这样做作为其他应用程序的一部分,我会避免使用静态类型的语言——太多的样板代码

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
page = agent.get('http://google.com/')
google_form = page.form('f')
google_form.q = 'ruby mechanize'
page = agent.submit(google_form)
pp page

Mechanize确实是一个很棒的库,因为它不仅仅是简单的HTTP GET/POST请求和fetch:它还跟踪cookies,从而紧密模拟真实的web浏览器行为。

我一直在使用Ruby,为了做到这一点,它非常直接,通过自动化IE或Firefox来工作


通过这种方法,浏览器可以处理任何JavaScript混乱,但您仍然可以完全访问页面内容,因此您只需添加独特的逻辑,如填写在线表单。

这些答案中的许多都是针对抓取应用程序的。如果这是您想要的,请使用等效的WWW::使用您选择的语言进行机械化(Perl是规范的,Python也很好)

但是,从您的问题来看,您可能希望自动化网站的单元测试。如果是这种情况,除了测试任何给定页面返回的HTML的正确性的框架外,您还需要一个浏览器内测试框架

突出的两个是和


它们提供的正是您想要的:一个简单的界面,用于从脚本浏览网站。它们允许对您的浏览进行更多的控制,特别是在javascript和各种类型的效果方面,这些效果在您在网站中来回移动时会显现出来,留下痕迹。

是另一种.Net浏览和执行的方式各种操作。

LWP::Simple可以从单个资源获取网页,但它没有任何用于导航网站的功能。webrequest et Simular(cURL)不允许与表单、javascripts等交互。
require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
page = agent.get('http://google.com/')
google_form = page.form('f')
google_form.q = 'ruby mechanize'
page = agent.submit(google_form)
pp page