zoukankan      html  css  js  c++  java
  • 爬虫介绍

    一,什么是爬虫

    网络怕中又称为网络蜘蛛,网络蚂蚁,网络机器人等,可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则称之为网络爬虫算法。使用python可以很方便的写出爬虫程序,进行互联网信息的自动化检索

    二,为什么学习爬虫

    私人定制一个搜索引擎,并且可以对搜索引擎的采集工作原理进行更深层次的理解,获取更多的数据源,并且这些数据源可以按照我们的目的进行采集,去掉很多的五官数据, 更好的进行seo(搜索引擎优化)

    三,网络爬虫的组成

    1⃣️控制节点: 叫做爬虫中央控制器,主要负责根据url地址分配线程,并调用爬虫节点进行具体的爬行

    2⃣️爬虫节点:按照相关的算法,对网页进行具体的爬行,主要包括下载网页以及对网页的文本处理,爬行后会将对应的爬行结果存储到对应的资源库中

    3⃣️资源库构成: 存储爬虫爬取到的响应数据,一般为数据库

    四,爬虫设计思路

    1⃣️首先确定需要爬取的网页URL地址

    2⃣️通过http协议来获取对应的html页面

    3⃣️如果是需要的数据就保存起来,如果页面是其他的url,那么就继续执行第二步

    五,PHP,JAVA,PYTHON比较

    1⃣️PHP:虽然是世界上最好的语言,但天生不是干爬虫的命,php对多线程,异步支持不足,并发不足,爬虫是工具性程序,对速度和效率要求较高

    2⃣️Java 生态圈完善,是python最大的对手,但是java本身很笨重,代码量大,重构成本比较高,任何修改都会导致大量代码的变动,最要命的是爬虫需要经常修改部分代码。

    3⃣️python 语法优美,代码简洁,开发效率高,三方模块多,调用其他接口也方便,有强大的爬虫scrapy,以及成熟高校的scrapy-redis分布式策略

    需要的技能

    1)如何抓取页面内容

    http请求处理,urlib处理后的请求可以模拟浏览器发送请求,获取服务器响应的文件

    2)解析服务器响应的内容

    re,xpath,beautyfulsoup4,jsonpath,pyquery目的是使用某种描述性语法来提取匹配规则的数据

    3)对动态html,验证码的处理

    selenium+phantomJS(无界面浏览器),模拟真实浏览器加载js,ajax等非静态页面,机器学习库,机器图像识别系统(识别图片中的文本) Tesseract

    4)Scrapy框架

    中国常见的框架Scrapy,Pyspider高定制高性能(异步网络框架twisted)所以数据下载速度非常快,提供了数据存储,数据下载,提取规则等组件

    5)分布式策略

    scrapy-redis,在scrapy的基础上添加了一套Redis数据库为核心的一套组件,让scrapy框架支持分布式的功能,主要在Redis里做请求指纹去重,请求分配,数据临时存储

    六,反爬虫技术

    1,user-agent 2,代理 3,验证码 4,动态数据加载

    七,抓取流程

    1,首先选取一部分已有的url,把这些url放到带爬队列,从队列里提取出这些URL,然后解析DNS得到主机IP,然后去这个IP对应的服务器里下载html页面,保存到搜索引擎的本地服务器里,之后爬过的URL放入爬取队列

    2,分析这些网页内容,找出网页里的URL连接,继续执行第二步,直到爬取条件结束

    八,搜索引擎如果获取一个新网站的URL

    1,主动向搜索引擎提交网址(百度站长平台)

    2,在其他网站里设置网站的外链接

    3,搜索引擎会合dns服务商合作,可以快速收录新的网站

    九,通用爬虫并不是玩物皆可爬的,他需要遵守规则

    1,协议会指明通用爬虫可以爬去网页的权限,Robots.txt只是一个建议,并不是所有的爬虫都遵守,一般只有大型的搜索引擎爬虫才会遵守

    十,通用爬虫工作流程

    1,爬取网页

    2,存储数据

    3,内容处理

    4,提供检索/排名服务

    十一,搜索引擎排名

    1,pageRank值:根据网站的流量(点击量,浏览值人气)统计,流量越高,网站越值钱,排名越靠前

    2,竞价排名:谁钱多谁排名高

    十二,通用爬虫的缺点

    1,只能提供和文本相关的内容(html,word,pdf)等,但是不能提供多媒体(音乐,图片,视频)和二进制文件(程序,脚本)等

    2,不能理解人类语义上的检索

    十三,聚焦网络爬虫

    1,概念:爬虫程序员写的针对某种内容的爬虫

    2,特点:会针对某种特定的内容取爬取信息,而且会保证信息和需求尽可能相关(面向主题爬虫,面向需求爬虫)

    十四, 增量式网络爬虫

    十五,深层网络爬虫

  • 相关阅读:
    如何看linux是32位还是64位
    Linux下,命令 wget 的使用
    express框架目录结构
    怎么在centos中查看某个目录的树结构?
    CentOS minimal版安装图形界面的步骤(自动获取IP)
    微信小程序项目,实现图书搜索组件完善
    微信小程序项目,实现图书搜索高阶组件:
    微信小程序中使用音频组件以及wx:if和hidden的区别
    微信小程序绑定数据以及自定义指令
    微信小程序定义一个组件
  • 原文地址:https://www.cnblogs.com/wangyue0925/p/11061923.html
Copyright © 2011-2022 走看看