using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text.Regularexpression_rs;
using System.Text;
namespace Counter.ui
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//测试 运行结果为“熊春迪 博客”
Response.Write(sekey.SearchKey("http://www.google.cn/search?hl=zh-CN&newwindow=1&q=%E7%86%8A%E6%98%A5%E8%BF%AA+%E5%8D%9A%E5%AE%A2&meta=&aq=f&oq="));
}
//搜索引擎特征
private string[][] _Enginers = new string[][]
{
new string[]{"google","utf8","q"},
new string[]{"baidu","gb2312","wd"},
new string[]{"yahoo","utf8","p"},
new string[]{"yisou","utf8","search"},
new string[]{"live","utf8","q"},
new string[]{"tom","gb2312","word"},
new string[]{"163","gb2312","q"},
new string[]{"iask","gb2312","k"},
new string[]{"soso","gb2312","w"},
new string[]{"sogou","gb2312","query"},
new string[]{"zhongsou","gb2312","w"},
new string[]{"3721","gb2312","p"},
new string[]{"openfind","utf8","q"},
new string[]{"alltheweb","utf8","q"},
new string[]{"lycos","utf8","query"},
new string[]{"onseek","utf8","q"}
};
//搜索引擎名称
private string _EngineName = "";
public string EngineName
{
get
{
return _EngineName;
}
}
//搜索引擎编码
private string _Coding = "utf8";
public string Coding
{
get
{
return _Coding;
}
}
//搜索引擎关键字查询参数名称
private string _RegexWord = "";
public string RegexWord
{
get
{
return _RegexWord;
}
}
private string _Regex = @"(";
//搜索引擎关键字
//建立搜索关键字正则表达式
public void EngineRegEx(string myString)
{
for (int i = 0, j = _Enginers.Length; i < j; i++)
{
if (myString.Contains(_Enginers[i][0]))
{
_EngineName = _Enginers[i][0];
_Coding = _Enginers[i][1];
_RegexWord = _Enginers[i][2];
_Regex += _EngineName + @".+.*[?/&]" + _RegexWord + @"[=:])(?<key>[^&]*)";
break;
}
}
}
//得到搜索引擎关键字
public string SearchKey(string myString)
{
EngineRegEx(myString.ToLower());
if (_EngineName != "")
{
Regex myReg = new Regex(_Regex, RegexOptions.IgnoreCase);
Match matche = myReg.Match(myString);
myString = matche.Groups["key"].Value;
//去处表示为空格的+
myString = myString.Replace("+", " ");
if (_Coding == "gb2312")
{
myString = GetUTF8String(myString);
}
else
{
myString = Uri.UnescapeDataString(myString);
}
}
return myString;
}
//整句转码
public string GetUTF8String(string myString)
{
Regex myReg = new Regex("(?<key>%..%..)", RegexOptions.IgnoreCase);
MatchCollection matches = myReg.Matches(myString);
string myWord;
for (int i = 0, j = matches.Count; i < j; i++)
{
myWord = matches[i].Groups["key"].Value.ToString();
myString = myString.Replace(myWord, GB2312ToUTF8(myWord));
}
return myString;
}
//单字GB2312转UTF8 URL编码
public string GB2312ToUTF8(string myString)
{
string[] myWord = myString.Split('%');
byte[] myByte = new byte[] { Convert.ToByte(myWord[1], 16), Convert.ToByte(myWord[2], 16) };
Encoding GB = Encoding.GetEncoding("GB2312");
Encoding U8 = Encoding.UTF8;
myByte = Encoding.Convert(GB, U8, myByte);
char[] Chars = new char[U8.GetCharCount(myByte, 0, myByte.Length)];
U8.GetChars(myByte, 0, myByte.Length, Chars, 0);
return new string(Chars);
}
//判断否为搜索引擎爬虫,并返回其类型
public string isCrawler(string SystemInfo)
{
string[] BotList = new string[] { "Google", "Baidu", "MSN", "Yahoo", "TMCrawler", "iask", "Sogou" };
foreach (string Bot in BotList)
{
if (SystemInfo.ToLower().Contains(Bot.ToLower()))
{
return Bot;
}
}
return "null";
}
}
}
分享到:
相关推荐
为了有效地执行SEO,需要定期跟踪关键字在搜索引擎如百度和谷歌中的排名。这个C#程序正是为实现这一目标而设计的,它能够抓取网页内容并分析关键字排名。 首先,我们需要理解C#在Web抓取中的应用。C#提供了丰富的库...
在本资源中,我们主要探讨的是使用C#编程语言开发搜索引擎的相关知识。这是一份PDF文档,可能包含从基础到进阶的多个章节,旨在帮助开发者掌握如何利用C#实现一个功能完备的搜索引擎。通常,搜索引擎开发涉及的关键...
【C# dotnetgooglesearchapi 搜索引擎源码】是一个基于C#编程语言实现的Google搜索API客户端,它允许开发者通过编程方式与Google搜索引擎进行交互,执行关键字搜索、获取搜索结果等操作。这个源码库可能包含了一系列...
本文将深入探讨如何使用C#编程语言来实现一个简单的搜索引擎网络爬虫。 首先,我们需要了解网络爬虫的基本工作原理。网络爬虫通常从一个或多个种子URL开始,通过解析HTML页面获取其他链接,并逐个访问这些链接,...
在这个案例中,我们关注的是一个使用C#编程语言编写的搜索引擎,它能够针对多种常见的文件格式进行检索和查询,包括文本文件、Word文档、Excel电子表格、PowerPoint演示文稿、PDF文档以及HTML网页。这个项目不仅展示...
5. **搜索算法**:根据用户输入的查询关键字,搜索引擎需要高效地从索引中找到匹配结果。可以使用Trie树、倒排索引等数据结构来加速查找过程。 6. **用户界面**:为用户提供友好的交互界面,接收查询请求,显示搜索...
《构建桌面搜索引擎C#版:实现与核心技术》 在当今信息爆炸的时代,高效地获取和检索数据成为了一项至关重要的任务。桌面搜索引擎作为个人计算机上的信息检索工具,可以帮助用户快速定位本地文件、文档、邮件等信息...
关键字密度是搜索引擎排名算法中的一个重要因素,合理的关键词分布可以帮助网站在搜索结果中获得更好的排名。此工具的实现,对于SEO从业者和网站开发者来说,具有很高的实用价值。 该工具的核心技术之一是采用了...
标题中的“c#做的按特别关键字抓取google信息的软件”揭示了这是一个使用C#编程语言开发的应用程序,其主要功能是针对特定关键词从Google搜索引擎中抓取信息。这个程序可能是一个网络爬虫,用于自动化地搜索网页并...
综上所述,这段C#源码是一个用于SEO目的的工具,它能够模拟用户在外部浏览器中点击百度关键词,以潜在地提升网站在搜索引擎中的排名。开发者可能需要了解C#编程、HTML DOM操作、网络请求以及可能的自动化测试技术。...
- **多线程与异步编程**:提升搜索引擎的并发处理能力,利用C#的Task和async/await关键字。 - **文件系统操作**:读取、写入和处理大量文本数据,如索引构建和搜索结果存储。 4. **搜索引擎架构设计**: - **...
本项目以C#语言在.NET平台上构建一个简单的搜索引擎,这为我们提供了一个深入理解C#编程、数据处理以及信息检索原理的机会。下面,我们将详细探讨这个主题中的关键知识点。 首先,我们要了解C#语言基础。C#是微软...
下面我们将深入探讨C#搜索引擎的相关知识点。 一、基础概念 1. C#:C#是一种现代化的、面向对象的编程语言,它由微软开发,主要用于.NET框架,支持多种编程范式,如面向对象、面向组件、以及函数式编程。 2. 搜索...
这对于创建自定义搜索引擎或者集成搜索功能到桌面应用中非常有用。 首先,理解Google搜索API是关键。Google提供了名为Custom Search JSON API的服务,允许开发者通过JSON(JavaScript Object Notation)格式获取...
在C#中实现元搜索引擎,主要涉及以下几个关键知识点: 1. **网络编程**:C#提供了丰富的网络编程库,如System.Net命名空间中的HttpClient类,用于向不同的搜索引擎发送HTTP请求并获取响应。理解HTTP协议的基本原理...
- **搜索算法**:可以使用简单的字符串搜索算法,如KMP或Boyer-Moore,也可以使用全文搜索引擎如Elasticsearch或Lucene,它们能提供更高效的搜索性能和高级查询功能。 3. **相关工具**: - **命令行工具**:如...
在C#编程环境中,开发一个抓取百度搜索引擎结果的程序是一项常见的网络爬虫任务。这个过程涉及到了HTTP请求、HTML解析、数据提取等关键知识点。下面将详细讲解这些概念及其在实现过程中的应用。 首先,我们需要理解...
4、提供DEDE,帝国,动易最新CMS版本的搜索引擎整合说明及代码。 更新说明(2010-5-4): 1、增加搜索结果关键字高亮显示 2、修改输入空格时出错的问题 3、修改索引接口不能支持HTML 文档的BUG 4、初始化数据库索引时...
这种搜索引擎能够帮助用户高效地管理大量文件,通过关键字或文件属性迅速找到目标文件。 在Windows环境下,文件的搜索功能通常是通过内置的“文件资源管理器”实现的,但有时候内置的搜索可能无法满足用户对速度和...