爬虫介绍

“大数据时代” 数据获取方式

  1. 企业生产的用户数据
    腾讯指数 百度指数 阿里指数 微博指数

  2. 数据管理咨询公司
    艾瑞咨询 麦肯锡

  3. 政府/机构提供的公开数据
    国家数据 纳斯达克股票数据

  4. 第三方数据平台购买数据
    数据堂 贵阳大数据交易所

  5. 爬虫爬取数据

爬虫介绍

爬虫按照场景分为两种,通用爬虫和聚焦爬虫

通用爬虫


通用爬虫即搜索引擎用的爬虫系统,如百度,谷歌

1.尽可能把互联网上所有的网页下载下来,放到本地服务器里形成备份,再对这些网页做相关的处理(提取关键字,去掉广告),最后提供一个用户检索的窗口;

2.抓取流程

首先选取一部分已有的URL,把这些URL放到爬取队列;

从队列里取出这些URL,然后解析DNS得到主机IP;然后去这个IP对应的服务器里下载HTML页面,保存到搜索引擎对应的数据;之后把这个爬过的URL放入已爬取队列。

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

3.搜索引擎如何获取一个新网站的URL

1.主动向搜索引擎提交网址: [百度搜索资源平台](https://ziyuan.baidu.com/)


2.在其他网站里设置外链


3.搜索引擎会和DNS服务商进行合作,可以快速收录新的网站

4.通用爬虫并不是万物皆可爬,它也需要遵守规则:

Robots协议: 协议会指明通用爬虫可以爬取网页的权限

Robots.txt 只是一个建议,并不是所有爬虫都遵守,一般只有大型的搜索引擎爬虫才会遵守,个人爬虫可以不管;

5.通用爬虫工作流程: 爬去网页 –> 存储数据 –>内容处理–>提供检索/排名服务
6.收索引擎排名

1.PageRank(流量越高,越值钱)

2.竞价排名,谁给钱多,谁排名就高

7.通用爬虫的缺点:

  • 只能提供文本信息,但不能提供多媒体文件(音乐,视频)

  • 提供的结果千篇一律,不能针对不同背景领域的人提供不同的搜索结果

  • 不能理解人类语义

聚焦爬虫


聚焦爬虫指的就是程序员写的针对某些内容的爬虫

网页三大特征

  1. 每个网页都有自己的URL(同一资源定位符)来进行定位

  2. 网页都是用HTML(超文本标记语言)来描述页面信息

  3. 网页都使用HTTP/HTTPS(超文本传输协议)来传输HTML数据

爬虫的思路

  1. 首先确定爬取的网页URL地址
  2. 通过HTTP/HTTP协议来获取对应的HTML页面
  3. 提取HTML页面有用的数据,如果是页面的其他URL,那就继续执行第二步

常见步骤:

- HTTP请求的处理,urllib,urllib2,requests,处理后的请求可以模拟浏览器请求,获取服务器响应的文件

- 通过动态页面采集: Selenium+PhantomJS(无界面):模拟真实浏览器加载js,ajax等非静态页面数据    

- Tesseract: 机器学习库,机器图像识别系统,可以处理简单验证码,复杂的验证码可以通过手动输入
- 保存数据     re,xpath,BeautifulSoup4(bs4),jsonpath,pyquery等 使用某种描述性一样来给我们需要提取的数据定义一个匹配规则,符合这个规则的数据就会被匹配,如果是需要的数据,就保存起来

爬虫框架

Scrapy,Pyspider

高定制性高性能(异步网络框架twisted),所以数据下载熟读非常快,提供了数据下载,数据存储,数据下载,提取规则

分布式策略

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

结语

爬虫 反爬虫 反反爬虫之间的斗争

其实爬虫做到最后,最头疼的不是负杂的页面,也不是晦涩的数据,而是网站另外一头的运维人员

反爬虫: User Agent,代理,验证码,动态数据加载,加密数据