01 爬虫的基本概念

爬虫  网络爬虫(又被称为网页蜘蛛, 网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.   原则上,只要是浏览器能做的事情,爬虫都能做.

爬虫基本概念

爬虫能做什么

  • 搜索引擎
  • 购票 抢票
  • 网络投票
  • 短信轰炸

 

爬虫的数据来源:

  • 去第三方的公司购买数据(比如企查查)
  • 去免费的数据网站下载数据(比如国家统计局)
  • 通过爬虫爬取数据
  • 人工收集数据(比如问卷调查)

爬虫的分类:   

  • 分为通用爬虫(搜索引擎式爬虫)
  • 聚焦爬虫(针对特定网站,例如12306抢票)
  • 增量式网络爬虫(Incremental Web Crawler)
  • 深层网络爬虫

爬虫获取的数据的用途:

  • 进行在网页或者是app上进行展示
  • 进行数据分析或者是机器学习相关的项目

 

爬虫的流程:

  • 搜索引擎流程
    1. 抓取网页
    2. 数据存储
    3. 预处理
    4. 提供检索服务 网站排名
  • 聚焦爬虫
    1.  向起始url发送请求,并获取响应
    2.  对响应进行提取
    3. 如果提取url,则继续发送请求获取响应
    4. 如果提取数据,则将数据进行保存入库

通用搜索引擎的局限性

  • 通用搜索引擎返回的网页里面90%的内容无用
  • 图片 音频 视频多媒体的内容通用搜索引擎无能为力
  • 不同用户搜索的内容不同,但是返回的内容相同

HTTP/HTTPS

HTTP :超文本传输协议, 默认端口80

HTTPS: HTTP+SSL(安全套接字层), 默认端口号:443

HTTPS比HTTP更安全,但是性能更低.

浏览器发送HTTP请求的过程

01 爬虫的基本概念

页面上渲染出来的的数据在哪里

  • 当前url地址对应的响应汇总
  • 其他的url地址对应的响应中, 比如ajax请求中
  • js生成的
    • 部分数据在响应汇总
    • 全部通过js生成

url的形式

形式 scheme://host[:port#]/path/.../[?query-string][#anchor]

  • scheme:协议(例如:http,https,ftp)
  • host:服务器的IP地址或者域名
  • port:服务器的端口(如果是走协议默认端口,80 or 443)
  • path:访问资源的路径
  • query-string:参数,发送给http服务器的数据
  • anchor:锚(跳转到网页指定锚点位置,但加不加锚点响应内容都是一样的)

HTTP常见请求头

  1. HOST(主机和端口号)
  2. Connection(链接类型)
  3. Upgarde-Insecure-Requests(升级为HTTPS请求)
  4. User-Agent(浏览器名称)    用户代理       浏览器的身份标识
  5. Accept(传输文件类型)
  6. Referer(页面跳转处)
  7. Accept-Encoding(文件编解码格式)
  8. Cookie (cookie)
  9. x-requested-with: XML HttpRequest(是AJax异步请求)

  Robots协议

网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是互联网中的一般约定, 用户也可以不遵守该协议继续爬取.

爬虫需要掌握字符串转换

爬虫使用python3的字符串类型处理  学习参考Python3 字符串

要掌握str和bytes类型的数据转化.