0

有没有办法从您自己的网站中搜索不同的网站?

例如,我构建了一个带有搜索框的 ASP.net 页面,该搜索框链接到例如 stackoverflow 的搜索框,当我输入任何搜索查询时,我都会在我的网站中获得结果。

4

1 回答 1

1

有几种方法可以做这样的事情:

我假设目的是使它与堆栈溢出一起工作

1. 使用 API 内置的 StackOverflows(客户端)

您可以在此处找到有关它的一些详细信息。其中包含有关如何进行搜索的详细信息。您可以使用 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. 使用 StackOverflows 内置 API(服务器端)

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 之类的工具来完成。这是帮助您开始使用 Selenium 的指南。

于 2013-10-28T08:52:13.090 回答