什么是搜索引擎

什么是搜索引擎,第1张

搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和元搜索引擎(Meta Search Engine)。

一 基本概念

搜索引擎指自动从因特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。因特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为用户绘制一幅一目了然的信息地图,供用户随时查阅。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果。

二 工作原理

1抓取网页

每个独立的搜索引擎都有自己的网页抓取程序(spider)。Spider顺着网页中的超链接,连续地抓取网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。

2处理网页

搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引文件。其他还包括去除重复网页、分词(中文)、判断网页类型、分析超链接、计算网页的重要度/丰富度等。

3提供检索服务

用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页;为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。

   /// <summary>

        /// 获取html

        /// </summary>

        /// <param name="url"></param>

        /// <returns></returns>

        private string GetHtml(string url)

        {

            string strHTML = "";

            try

            {

                WebClient myWebClient = new WebClient();

                Stream myStream = myWebClientOpenRead(url);

                StreamReader sr = new StreamReader(myStream, SystemTextEncodingGetEncoding("gbk"));

                strHTML = srReadToEnd();

                myStreamClose();

                return strHTML;

            }

            catch

            {

                return "";

            }

        } private ImageBase GetImgClass(string url)

        {

            string html = GetHtml(url);

            ImageBase ib = new ImageBase();

            // string a = @"<img\ssrc\s=\s[""']\s([^\s""'<>])\s/\s>";

            Regex RegexObj = new Regex("(<img (id=\"J_ImgBooth\")(|\n)</img>)|(<img (id=\"J_ImgBooth\")(|\n)/>)", RegexOptionsMultiline);

            // MatchCollection Mathclist = RegexObjMatche(html);

            string imgstr = RegexObjMatch(html)Value;

            string index = imgstrSubstring(imgstrIndexOf("data-src"));

            index = indexSubstring(indexIndexOf(">        }

上面给了2个代码 一个是 获取网页内容 一个是截取想要的具体内容

共参考

14102901 : 07 04 02 06 08

14102902 : 07 02 10 08 11

14102903 : 06 04 07 11 10

14102904 : 01 05 08 09 03

14102905 : 06 05 10 09 08

14102906 : 11 03 09 01 06

14102907 : 03 05 08 06 09

14102908 : 04 07 03 06 01

14102909 : 02 07 01 09 05

14102910 : 02 11 04 09 01

14102911 : 10 07 08 11 06

14102912 : 09 04 01 08 05

14102913 : 10 04 09 07 03

14102914 : 05 06 07 02 04

14102915 : 03 11 08 10 05

14102916 : 03 11 05 07 01

14102917 : 07 09 03 02 04

14102918 : 02 11 05 01 06

14102919 : 03 05 01 02 06

14102920 : 03 05 11 08 10

14102921 : 02 11 06 07 05

14102922 : 06 01 04 02 11

14102923 : 11 07 10 05 04

14102924 : 03 11 04 10 07

14102925 : 01 11 07 05 04

14102926 : 10 09 05 08 04

14102927 : 09 02 05 04 08

14102928 : 03 09 08 05 02

14102929 : 04 07 05 09 10

14102930 : 04 05 06 09 07

14102931 : 02 09 07 10 06

14102932 : 03 05 04 06 07

14102933 : 09 04 07 08 10

14102934 : 05 09 11 10 07

14102935 : 10 09 11 06 08

14102936 : 05 09 07 10 08

14102937 : 05 11 04 10 01

14102938 : 01 09 11 08 10

14102939 : 02 09 11 10 04

14102940 : 05 07 08 01 09

14102941 : 05 08 09 03 01

14102942 : 03 11 08 09 10

14102943 : 01 09 03 02 08

14102944 : 07 11 05 06 09

14102945 : 03 02 11 01 10

14102946 : 11 05 02 10 07

14102947 : 07 05 04 06 08

14102948 : 09 07 06 04 05

14102949 : 02 05 03 09 04

14102950 : 09 05 04 10 03

14102951 : 08 09 11 02 05

14102952 : 01 10 11 07 05

14102953 : 03 11 04 06 05

14102954 : 08 06 05 03 07

14102955 : 06 11 02 07 08

14102956 : 05 06 09 04 03

14102957 : 04 05 07 01 11

14102958 : 06 07 03 08 05

14102959 : 04 02 08 06 07

14102960 : 02 01 04 07 10

14102961 : 02 08 03 01 09

14102962 : 11 04 01 08 06

14102963 : 03 06 11 02 04

14102964 : 07 10 02 04 11

14102965 : 10 03 11 06 02

14102966 : 05 10 03 02 09

14102967 : 05 06 11 01 02

14102968 : 01 04 11 07 05

14102969 : 08 03 05 02 06

14102970 : 05 01 03 04 07

14102971 : 07 03 04 08 02

14102972 : 07 10 03 01 06

14102973 : 03 08 04 02 09

14102974 : 02 09 03 04 06

14102975 : 05 06 01 10 02

14102976 : 09 04 05 06 03

14102977 : 11 09 04 07 02

14102978 : 02 05 11 07 10

主要是PR技术以及匹配技术。

最著名的并且获得了专利的当然就是google的PR技术

家可能听说过,Google革命性的发明是它名为“PageRank”的网页排名算法,这项技术彻底解决了搜索结果排序的问题。其实最先试图给互联网上的众多网站排序的并不是Google。Yahoo!公司最初第一个用目录分类的方式让用户通过互联网检索信息,但由于当时计算机容量和速度的限制,当时的Yahoo!和同时代的其它搜索引擎都存在一个共同的问题:收录的网页太少,而且只能对网页中常见内容相关的实际用词进行索引。那时,用户很难找到很相关信息。我记得1999年以前查找一篇论文,要换好几个搜索引擎。后来DEC公司开发了AltaVista搜索引擎,只用一台ALPHA服务器,却收录了比以往引擎都多的网页,而且对里面的每个词进行索引。AltaVista虽然让用户搜索到大量结果,但大部分结果却与查询不太相关,有时找想看的网页需要翻好几页。所以最初的AltaVista在一定程度上解决了覆盖率的问题,但不能很好地对结果进行排序。

Google的“PageRank”(网页排名)是怎么回事呢?其实简单说就是民主表决。打个比方,假如我们要找李开复博士,有一百个人举手说自己是李开复。那么谁是真的呢?也许有好几个真的,但即使如此谁又是大家真正想找的呢?:-)如果大家都说在Google公司的那个是真的,那么他就是真的。

在互联网上,如果一个网页被很多其它很多网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。这就是PageRank的核心思想。当然Google的PageRank算法实际上要复杂得多。比如说,对来自不同网页的链接对待不同,本身网页排名高的链接更可靠,于是给这些链接予较大的权重。PageRank考虑了这个因素,可是现在问题又来了,计算搜索结果的网页排名过程中需要用到本身网页的排名,这不成了先有鸡还是先有蛋的问题了吗?

Google的两个创始人拉里佩奇(LarryPage)和谢尔盖布林(SergeyBrin)把这个问题变成了一个二维矩阵相乘的问题,并且用迭代的方法解决了这个问题。他们先假定所有网页的排名是相同的,并且根据这个初始值,算出各个网页的第一次迭代排名,然后再根据第一次迭代排名算出第二次的排名。他们两人从理论上证明了不论初始值如何选取,这种算法都保证了网页排名的估计值能收敛到他们的真实值。值得一提的事,这种算法是完全没有任何人工干预的。

理论问题解决了,又遇到实际问题。因为互联网上网页的数量是巨大的,上面提到的二维矩阵从理论上讲有网页数目平方之多个元素。如果我们假定有十亿个网页,那么这个矩阵就有一百亿亿个元素。这样大的矩阵相乘,计算量是非常大的。拉里和谢尔盖两人利用稀疏矩阵计算的技巧,大大的简化了计算量,并实现了这个网页排名算法。今天Google的工程师把这个算法移植到并行的计算机中,进一步缩短了计算时间,使网页更新的周期比以前短了许多。

我来Google后,拉里(Larry)在和我们几个新员工座谈时,讲起他当年和谢尔盖(Sergey)是怎么想到网页排名算法的。他说:"当时我们觉得整个互联网就像一张大的图(Graph),每个网站就像一个节点,而每个网页的链接就像一个弧。我想,互联网可以用一个图或者矩阵描述,我也许可以在用这个发现做个博士论文。"他和谢尔盖就这样发明了PageRank的算法。

网页排名的高明之处在于它把整个互联网当作了一个整体对待。它无意识中符合了系统论的观点。相比之下,以前的信息检索大多把每一个网页当作独立的个体对待,很多人当初只注意了网页内容和查询语句的相关性,忽略了网页之间的关系。

今天,Google搜索引擎比最初的复杂、完善了许多。但是网页排名在Google所有算法中依然是至关重要的。在学术界,这个算法被公认为是文献检索中最大的贡献之一,并且被很多大学引入了信息检索课程(InformationRetrieval)的教程。

1、抓取网页

每个独立的搜索引擎都有自己的网页抓取程序(spider)。Spider顺着网页中的超链接,连续地抓取网页。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。

2、处理网页

搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引文件。其他还包括去除重复网页、分析超链接、计算网页的重要度。

3、提供检索服务

用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页;为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。

因此,我们如果使用 AJAX 加载的动态网页,怎么爬取里面动态加载的内容呢?有两种方法:

方法1 *** 作步骤:

步骤:

selenium选择元素的方法有很多:

有时候,我们需要查找多个元素。在上述例子中,我们就查找了所有的评论。因此,也有对应的元素选择方法,就是在上述的element后加上s,变成elements。

其中xpath和css_selector是比较好的方法,一方面比较清晰,另一方面相对其他方法定位元素比较准确。

除此之外,我们还可以使用selenium *** 作元素方法实现自动 *** 作网页。常见的 *** 作元素方法如下:

– clear 清除元素的内容

– send_keys 模拟按键输入

– click 点击元素

– submit 提交表单

由于篇幅有限,有兴趣的读者,可以到selenium的官方文档查看: >

以上就是关于什么是搜索引擎全部的内容,包括:什么是搜索引擎、C#在vs里用控制台应用程序怎样进行网页抓取,求代码。。、网页数据抓取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9685249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存