asp.net如何获得关键字相关的网页
发布网友
发布时间:2022-04-27 10:54
我来回答
共3个回答
热心网友
时间:2022-04-27 12:23
本人以前是做过一些SEO(也就是提高网站在GOOGLE,百度中提高排名),后来在公司内部做ASP.NET开发。 个人认为这个问题和ASP.NET好像没什么关系,但其实是很复杂,值得研究的一个问题。虽然没有做过搜索引擎,但还是愿意说说个人的意见。
首先,你需要有3种机器(数量上先不提),第一个是像Apache, IIS的网站服务器提供用户搜索的界面,另一个是超级庞大的数据库来提供所有网站的数据,另一种就是最重要的获取信息并处理存入数据库的“引擎”。主要讲讲引擎。
其实这个引擎没有什么特别的是,从最小的IP段,如11.0.0.1一直到最大的IP段如223.99.99.1。当然这里应该只去搜索80端口。如何搜索页面?这里可以用C或JAVA语言原始crawler,这是最著名的了。另外在.NET里可以用强大的WebHttpRequest, WebHttpResponse来读取页面的HTML内容。下面是处理的逻辑。
首先是把网页的的首页HTML读出来,再分析里面的有用信息,最重要的可以说就是<a>和sitemap了,可根据<a>在深入分析其他页面。另外内容很重要,标题<h1><h2>也很重要。当然<meta>的关键字也有点用,但GOOGLE好像对META不感兴趣。这里一定要遵循一些规则(就像google的page rank系统),下面举机个规则的例子:
1. 如果一个站,连到它的都是大网站(如Sun, Microsoft等),那这个网站的分数一定很高,就更有几率在所在其所相关的关键词中搜索出来。如果有成千上万的网站<a>到这个网站,那么说明他是官方像Sun, Microsoft的网站!
2. 如果一个站,内容(也就是大面积的文字)是最原创唯一的,那么,分数就高。有的站,虽然内容不唯一,但出现时间最早,那么分数也高。
3. 如果一个站,内容很多,而且关联性(比如全关于同一个地域、同一个知识)很强,而且必须要在<a>中连接了(不然读不到),那么分数也高。
4. 用GOOGLE举例,GOOGLE有美国、新加坡、中国、印度。那么访问者在不同的地域搜索的网站排名也不同。也就是要记录这个网站的服务器IP是哪个国家、城市的。
5. 重大节日前后,GOOGLE有一轮搜索,能判断这个网站是不是活跃的,从而调整排名。
6.在各个类型的目录网站(website directory,如DimoZ,Yahoo Directory)中,如果一个网站能在大多数目录中找到,那么她的排名也应该高。也就是你要知道所有可信的目录网站,然后查找该目标网站在目录网站有记录。不过这种目录网站恐怕有上万个。
7. 对于进入前100名的特别分析。对于进入前5名的网站,要进行更加特别的分析,包括有没有作弊等。
数据库这要记录其相关的关键词,域名,服务器地点,pagerank等等的信息,很复杂,这里没有像过具体怎么实现。但听说并不是用现在广泛应用的relational database,而是用Full Text search这种方法的数据库。
在Web 2.0盛行的今天,Ajax的动态HTML TAG(如DIV), JavaScript,Flash已经让所搜引擎技术上加大了挑战。说不定,楼主还需要研究一个能分析执行JavaScript变化后的HTML的library。FLASH目前没有任何办法来分析,这也就是Flash那么美但却仅仅能用于小局部设计的原因。
注意,这些功能全是机器智能的,没有人工做任何东西,不能靠人手动删除、添加等!
SEO东西很多。GOOGLE的特别搜索设计最以开始只是2个大学生的想法,没有实现,后来有机会实现真是不容易,而且几年间股票价格、IT界影响力已将超过早GOOGLE搜索几年的YAHOO搜索。当然GOOGLE科学家很多,他们的技术一直在提高!可以看下参考资料,是关于GOOGLE的。
参考资料:http://www.ianrogers.net/google-page-rank/
热心网友
时间:2022-04-27 13:41
利用webrequest获取网页内容,并查找相关字段.但需要强大的群集服务器
热心网友
时间:2022-04-27 15:16
首先需要一个服务器就叫它搜索服务器吧
然后需要采集数据 把数据载入服务器里
这里面包含很多技术 比如搜索效率