php抓取开奖网页内容(搜索引擎(SearchEngine)应运而生的工作原理及工作流程分析)
优采云 发布时间: 2022-03-04 06:16php抓取开奖网页内容(搜索引擎(SearchEngine)应运而生的工作原理及工作流程分析)
随着网络技术的发展,互联网已经成为海量信息的载体。随着人们对这些信息的有效提取和应用需求的增加,搜索引擎(Search Engines)应运而生,如传统的通用搜索引擎AltaVista、Yahoo!!而谷歌等作为帮助人们检索信息的工具,成为用户访问万维网的门户和指南。但是,这些通用搜索引擎也有一定的局限性,例如:
1、对于不同需求和背景的用户,搜索引擎不够智能,返回的结果大多收录对用户无用的信息。
2、图片、数据库、音视频多媒体等不同的数据无法很好的查找和获取。
为了解决上述问题,开发了定向爬取相关网络资源的专注爬虫。与通用爬虫(即大多数搜索引擎使用的爬虫)相比,专注爬虫并不追求大覆盖,而是设定了爬取的目标。获取与特定主题相关的网页,并为面向主题的用户查询准备数据资源。聚焦爬虫是一种自动下载网页的程序。它根据给定的爬取目标有选择地访问万维网上的网页和相关链接,以获取所需的信息。
1 网络爬虫的工作原理
传统爬虫从一个或多个初始网页的URL开始,获取初始网页上的URL。在对网页进行爬取的过程中,不断地从当前页面中提取新的 URL 并放入队列中,直到满足系统的某些停止条件。焦点爬虫的工作流程比较复杂。它需要按照一定的网页分析算法过滤掉与主题无关的链接,保留有用的链接,并放入等待抓取的URL队列中。然后,它会根据一定的搜索策略从队列中选择下一个要爬取的网页URL,并重复上述过程,直到达到系统的一定条件并停止。另外,爬虫爬取的所有网页都会被系统存储,进行一定的分析、过滤、索引,以供后续查询和检索;对于重点爬虫来说,这个过程中得到的分析结果也可能对后续的爬取过程给出反馈和指导。
与通用网络爬虫相比,聚焦爬虫还需要解决三个主要问题:
(1) 获取目标的描述或定义;
(2) 网页或数据的分析和过滤;
(3) URL 的搜索策略。
爬取目标的描述和定义是决定如何制定网页分析算法和URL搜索策略的基础。网页分析算法和候选URL排序算法是确定搜索引擎提供的服务形式和爬虫爬取行为的关键。这两部分的算法密切相关。
2 爬取目标描述
现有的焦点爬虫对爬取目标的描述可以分为三种类型:基于目标网页的特征、基于目标数据模式和基于领域概念。
爬虫根据目标网页的特征爬取、存储和索引的对象一般为网站或网页。根据*敏*感*词*样品的获取方式,可分为:
(1) 预先给定的初始抓取*敏*感*词*样本;
(2) 预先给定的网页类别和类别对应的*敏*感*词*样本,如Yahoo!类别结构等;
(3) 由用户行为决定的抓取目标示例分为:
a) 在用户浏览过程中显示标记的抓取样本;
b) 通过用户日志挖掘获取访问模式和相关样本。
网页特征可以是网页的内容特征,也可以是网页的链接结构特征等。
3 网络搜索策略
网页抓取策略可以分为三种类型:深度优先、广度优先和最佳优先。深度优先在很多情况下会导致爬虫被困的问题。目前,广度优先和最佳优先方法很常见。
3.1 广度优先搜索策略
广度优先搜索策略是指在爬取过程中,完成当前一级的搜索后,再进行下一级的搜索。该算法的设计和实现比较简单。目前,为了覆盖尽可能多的网页,一般采用广度优先搜索方式。也有许多研究将广度优先搜索策略应用于聚焦爬虫。其基本思想是距初始 URL 一定链接距离内的网页具有较高的主题相关性概率。另一种方法是将广度优先搜索与网页过滤技术相结合,首先使用广度优先策略抓取网页,然后过滤掉不相关的页面。这些方法的缺点是随着爬取的网页数量的增加,
3.2 最佳优先搜索策略
最佳优先级搜索策略是根据一定的网页分析算法预测候选URL与目标网页的相似度,或与主题的相关度,选择评价最好的一个或几个URL进行爬取。它只访问页面分析算法预测为“有用”的页面。一个问题是爬虫爬取路径上的许多相关网页可能会被忽略,因为最佳优先策略是局部最优搜索算法。因此,需要将最佳优先级与具体应用结合起来进行改进,从而跳出局部最优点。在第 4 节中,将结合网页分析算法进行详细讨论。
================================================
世界上第一个网络爬虫是 1993 年由麻省理工学院学生 Matthew Gray 编写的。他将自己的程序命名为“Internet Wanderer”(“万维网漫游者”)。未来网络爬虫会越来越复杂,但原理是一样的。
让我们看看网络爬虫如何下载整个互联网。假设我们从一个门户的首页网站开始,首先下载这个网页,然后通过分析这个网页,我们可以找到隐藏在其中的所有超链接,也就是说我们知道了这个门户的首页网站 直接链接到的所有网页,例如雅虎邮箱、雅虎财经、雅虎新闻等。然后我们访问、下载和分析门户网站的网站网页,例如电子邮件,并找到其他链接的网页。我们让电脑一直在做,我们可以下载整个互联网。当然,我们还需要记录下载了哪个网页,避免重复。在网络爬虫中,我们使用称为“哈希表”的列表而不是记事本来跟踪网页是否已下载。
今天的互联网如此庞大,不可能通过一台或几台计算机服务器来完成下载任务。例如,雅虎(谷歌没有公开我们的数据,所以我以雅虎的索引大小为例)声称他们索引了 200 亿页。如果下载一个页面需要一秒钟,则需要下载 200 亿个页面。634 年。因此,商业网络爬虫需要有数千台服务器通过快速网络连接。如何构建这样一个复杂的网络系统,如何协调这些服务器的任务,是网络设计和编程的艺术。
在Java中,网络爬虫一般需要以下知识: