zoukankan      html  css  js  c++  java
  • 网络爬虫--前世今生

    -下载网页: urllib Request
    -解析网页 BeautifulSoup
    -模拟交互 处理JS动态网页: Selenium

    - 分布式队列
    - 布隆过滤器(BLoom Filter)


    网络爬虫是一种自动提取网页的程序,它为搜索引擎
    从万维网上下载网页,是搜索引擎的重要组成部分。
    传统爬虫从一个活若干初始网页URL开始,获得初始网页上的URL,
    在爬取网页过程中,不断从当前页面上抽取新的url放入队列,
    直到满足系统的一定停止条件


    爬虫的分类

    批量型爬虫

    批量型爬虫有明确的抓取范围和慕白,当爬虫达到这个设定目标后
    即停止抓取过程。

    增量型爬虫

    增量型爬虫会持续不断的抓取,对于抓取的网页,要定期更新。
    通用的商业搜索引擎爬虫基本属于此类

    垂直型爬虫

    垂直型爬虫关注特定主体内容或者属于特定行业的网页,其他主体或者
    其他行业的内容不再考虑范围。


    网络爬虫的基本工作流程:

    1.首先选取一部分精心挑选的种子url;
    2.将这些URL放入等待抓取的URL队列;
    3.从待抓取队列中取出URL,解析DNS,并且得到主机的IP,并将URL
    对应的网页下载下来。存储进已下载网页库。此外,将这些url放进已抓取的URL队列
    4.分析已经抓取的URL队列中的URL,分析其中的其他URL。并且将URL放入待抓取URL队列。从而进入下一个循环。


    对应的,可以将互联网的所有页面分为五个部分:
    1.已下载未过期网页
    2.已下载已过期网页:
    抓取到网页实际上是互联网内容的一个镜像与备份,互联网是动态变化的,一部分互联网上的内容以及发生了变化。
    这是,这部分爬取的网页就已经过期了。
    3.等待下载的网页: 待抓取URL序列的页面。
    4.已知网页:还没有爬取下来,也没有在待爬取URL队列中,但是可以通过对已爬取页面或者待爬取URL对应页面进行分析获得URL,
    认为是可可知网页。
    5.不可知网页: 有一部分网页,爬虫是无法直接抓取下载的。


    爬虫系统中,待抓取URL队列是很重要一部分。待抓取URL队列中的URL以怎样的排序队列也是一个很重要的问题
    因为涉及到先抓取那个页面,后抓取哪个页面而决定这些URL排列顺序的方法,叫做抓取策略。下面重点介绍几种常见的抓取策略。
    1.深度优先遍历策略
    2.宽度(广度)优先遍历策略
    3.反向链路数策略
    4.Partial PageRank 策略

    互联网是动态变化的,具有很强的动态性。网页更新策略主要是决定何时更新之前已经下载过的页面。常见的更新策略有以下三种:

    1.历史参考策略

    2.用户体验策略

    3.聚类抽样策略


    泊松分布

    尽管搜索引擎针对于某查询条件返回数量巨大的结果,但是用户往往只是关注前几页结果。
    因此,抓取系统可以优先更新那些显示在查询结果前几页的网页。而后再更新那些后面网页。
    这种更新策略也是需要用到历史信息的。

      用户体验策略保留网页多个历史版本,并且可以根据过去每次内容变化对搜索质量的影响,得到一个平均值。
    用这个值作为决定何时抓取的依据

  • 相关阅读:
    ctrl+d与ctrl+c
    SIGTERM等信号含义
    truss命令
    strings命令
    touch命令
    C语言的readlink
    P1065 [NOIP2006 提高组] 作业调度方案
    P1786 帮贡排序
    P1098 [NOIP2007 提高组] 字符串的展开
    P1591 阶乘数码
  • 原文地址:https://www.cnblogs.com/EEEE1/p/10121720.html
Copyright © 2011-2022 走看看