C# 将搜索框链接到其他网站的搜索框
本文关键字:搜索 网站 其他 链接 | 更新日期: 2023-09-27 18:37:08
有没有办法从您自己的网站中搜索不同的网站?
例如,我构建了一个带有搜索框的 ASP.net 页面,例如链接到stackoverflow的搜索框,当我输入任何搜索查询时,我将在我的网站中获得结果。
有几种方法可以做这样的事情:
我假设目的是让它与堆栈溢出一起工作
1. 使用内置 API 中的堆栈溢出(客户端)
您可以在此处找到有关它的一些详细信息。其中包含有关如何进行搜索的详细信息。您可以使用像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 的堆栈溢出(服务器端)
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 可用时不理想)
这可以使用硒或Watin等工具完成。这是帮助您开始使用硒的指南.