我已經編程了很多年,現在我只有一個問題。編程語言自動導航網站?
什麼編程語言允許您創建可以自動導航網站和執行各種操作的程序?例如,登錄,瀏覽到特定頁面,填寫表格,提取某些文本等。
這與宏不同,因爲宏只執行預定義的一組操作。另一方面,根據屏幕上顯示的內容,程序的行爲會有所不同。
也許某種腳本語言?或者是一種通用語言。您的答覆將不勝感激。
我已經編程了很多年,現在我只有一個問題。編程語言自動導航網站?
什麼編程語言允許您創建可以自動導航網站和執行各種操作的程序?例如,登錄,瀏覽到特定頁面,填寫表格,提取某些文本等。
這與宏不同,因爲宏只執行預定義的一組操作。另一方面,根據屏幕上顯示的內容,程序的行爲會有所不同。
也許某種腳本語言?或者是一種通用語言。您的答覆將不勝感激。
我一直在使用Ruby和watir做到這一點,它非常簡單,並通過自動化IE或Firefox的作品。
這種方法的瀏覽器處理JavaScript的任何亂七八糟,但你仍然必須將頁面內容,所以你只需要添加您的獨特邏輯就像填寫在線表格的完全訪問權限。
您可以在Perl中使用LWP::Simple。
你可以找到很多的網站,但Getting more out of LWP::Simple上的信息是Perlmonks的教程。
幾乎任何語言都可以做到這一點,perl,php/curl在linux和asp/C#在Windows中。
檢查了這一點 - PHP Form Filling Tutorial
你可以做到這一切與WebRequest對象在C#
public static void Main()
{
// Create a request for the URL.
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// Display the status.
Console.WriteLine (response.StatusDescription);
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader (dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
Console.WriteLine (responseFromServer);
// Cleanup the streams and the response.
reader.Close();
dataStream.Close();
response.Close();
}
webrequest et similar(cURL)不允許與表單,javascript等進行交互 – kappa 2013-05-24 10:24:41
我相信你是不是在找一個語言,而是一個框架,允許你這樣做這個。這通常由web scraping software完成。有一些在線服務,例如Mozenda,可以讓你做簡單的事情。還有一些框架可以幫助您以更嚴格的方式進行操作。我有一些screen-scraper的經驗,我認爲這是最豐富的功能之一。
另一種類型的框架是網絡爬蟲 - 。這是要經過一個網站,並建立索引(像搜索引擎
在Perl中,WWW::Mechanize是用於導航網站的標準工具,它可以處理餅乾,會話,知道如何與表單交互,執行點擊等等,它保持了狀態,因爲它一直沿着它的方向來維持狀態
它的一個缺點是沒有處理javascript,有一些與Javascript交互的Perl模塊,但它們不是't整合WWW :: Mechanize。
我肯定會去一些腳本la nguage,Ruby/Mechanize是我的最愛,看看一些examples ......當然,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
機械化是真正偉大的圖書館,因爲它不只是簡單的HTTP GET/POST請求,並取:它跟蹤的cookie密切相關,從而模擬真實的網絡瀏覽器的行爲。
WatiN是另一種.Net瀏覽和執行各種操作的方式。
請不要因爲Perl是亡靈而低估我。 – t3rse 2009-11-17 20:13:06
LWP :: Simple可以獲取單個資源的網頁,但它沒有用於導航網站的任何功能。 – 2009-11-17 20:20:34