2013-10-28 46 views
0

有沒有辦法從您自己的網站內搜索不同的網站?C#將您的搜索框鏈接到其他網站的搜索框

例如,當我輸入任何搜索查詢時,我會在搜索框中創建一個帶有搜索框的ASP.net頁面,當我輸入任何搜索查詢時,我將在我的網站中獲得結果。

+0

到目前爲止的努力? –

+0

我試過使用webclient,但我不確定這是我需要使用的。 – user2061311

+0

您想要搜索哪個網站的搜索結果?應該可以發出一個HttpWebRequest,刮掉響應並顯示結果。 如果網站有一個搜索API更容易 – ganeshran

回答

1

有幾種方法去這樣做這樣的事情:

我假設的目的是爲了使其與堆棧溢出工作

1.內置API使用StackOverflows(客戶端側)

你可以找到它的一些細節here。其中包含有關如何執行搜索的詳細信息。你可以用像jQuery這樣的客戶端庫來做到這一點。

var URL = "http://api.stackoverflow.com/1.1/"; 
var _url = URL + 'users?filter=locrizak'; 

$.ajax({ 
    dataType: 'jsonp', 
    jsonp: 'jsonp', // <--- add this 
    url: _url, 
    success: function(val) { 
     console.log('success'); 
    }, 
    error: function(val) { 
     console.log('error'); 
     console.log(arguments); 
    } 
}); 

2.內置API(服務器端)使用StackOverflows

static void SearchStackOverflow(string y) 
{ 
    var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://api.stackoverflow.com/1.1/search?intitle=" + Uri.EscapeDataString(y)); 
    httpWebRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; 
    httpWebRequest.Method = "GET"; 
    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
    string responseText; 
    using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
    { 
     responseText = streamReader.ReadToEnd(); 
    } 
    var result = (SearchResult)new JavaScriptSerializer().Deserialize(responseText, typeof(SearchResult)); 
    .... do something with result ... 
} 
class SearchResult 
{ 
     public List<Question> questions { get; set; } 
} 
class Question 
{ 
     public string title { get; set; } 
     public int answer_count { get; set; } 
} 

3.使用屏幕刮板(不理想當API可用)

這可以用Selenium或Watin等工具完成。 Here is a guide to help you get started with Selenium.

+0

謝謝格蘭特,我會試試看。 – user2061311

+0

這是值得讚賞嗎? – GrantByrne

+0

是的。謝謝 – user2061311