zoukankan      html  css  js  c++  java
  • 老李谈爬虫 1

    老李谈爬虫

     

     poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。

    爬虫又可以称之为蜘蛛或者说是机器人,很多人肯定都听说过网络爬虫的概念,大意就是他的目标就是不断的发送http请求去爬去网页上的数据,爬虫在搜索引擎中运用的非常的广泛,但是爬虫其实并不简单,下面我给大家详细的讲述关于爬虫的一些细节,或许就有你不知道的细节哦。

    爬虫算法

    先来说说一个简单的爬虫算法,爬虫算法的核心就是获取网页内如,解析出其中的网页链接,再次发送请求取得里面的内容,然后循环。因此这里会需要一个种子链接地址,我们称之为种子网页。你可以把爬虫算法看成一个图算法,各个网页通过入链和出链的形式互相连接着,构成了类似于无向图的结构。在爬虫算法的中间过程中会维护一个未访问URL列表,一般放在主内存中,可以提高访问效率,访问完毕之后再移除,获取到新的链接之后再次放入。

    爬虫队列

    爬虫队列指的是爬虫访问到新的链接时,所存入队列的方式,因为这关系到之后将会优化访问哪些未访问的url,如果采用FIFO的方式的话,对应的爬虫就是宽度优先爬虫,就是广度优先算法类似,这个很好理解,还有另外一种就是按照优先队列的方式,这个称之为带偏好的爬虫,这类爬虫他会做的一个操作是会给即将访问的URL一个优先级值,该优先级值会根据页面价值估计计算而得。

    网页链接获取

    了解了爬虫的核心原理之后,就可以往细节里面再去研究,比如获取到了网页内容之后,我们如何去解析或者说是去识别出里面的链接呢,也许你会马上联系到正则表达式去匹配嘛,方便又快捷,但是你忘了一个前提,你所面对的是海量的数据,什么叫做海量,千万级,亿级别的数据。所以我们得重新选择一个好的方式,大体上来说,网页的解析过程可以简单的从超链接中获取url也可以复杂到分析HTML代码,以后者为例,你可以用获取到的HTML源代码构建一个dom树,然后一个深度优先或广度优先的方式去遍历每个标签节点,当然在这部分还可以有很多的算法优化。

  • 相关阅读:
    Atitit 人脸识别 眼睛形态 attilax总结
    Atitit 手机号码选号 规范 流程 attilax总结 v2 r99.docx
    atitit 板块分类 上市公司 龙头企业公司 列表 attilax总结.docx
    Atititi atiitt eam pam资产管理 购物表去年.xlsx
    使用cmd查看电脑连接过的wifi密码(一)
    常见十大web攻击手段 悟寰轩
    常见web攻击方式 悟寰轩
    【MYSQL数据库】MYSQL学习笔记mysql分区基本操作 悟寰轩
    Filter及FilterChain的使用详解 悟寰轩
    启动tomcat spring初始化两次问题(eg:@PostConstruct) 悟寰轩
  • 原文地址:https://www.cnblogs.com/poptest/p/5163928.html
Copyright © 2011-2022 走看看