数据挖掘基本概念

数据挖掘基本概念

1. 爬虫基础知识

1.1 爬虫的定义

网络爬虫(又被称为网页蜘蛛,网络机器人),就是模拟客户端发送网络请求,接收请求相应,一种按照一定的规则自动地抓取互联网信息的程序

只要是浏览器能做的事情,原则上,爬虫都能做

1.2 爬虫的更多用途

  • 12306抢票

  • 网站上的投票

  • 短信轰炸

1.3 爬虫的分类

  • 通用爬虫:通常指搜索引擎的爬虫
    • 是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
  • 聚焦爬虫:针对特定网站的爬虫

1.4 通用爬虫和聚焦爬虫工作流程

1.5 通用搜索引擎的局限性

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

1.6 ROBOTS协议

Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取

例如:https://www.taobao.com/robots.txt

1.7 总结

  • 爬虫的概念
    • 爬虫是模拟浏览器发送请求,获取响应
  • 爬虫的流程
    • url ——>发送请求,获取响应 ——>提取数据 ——> 保存
    • 发送请求,获取相应 ——>提取url

爬虫要根据当前url地址对应的响应为准,当前url地址的elements的内容和url的响应不一样

页面上的数据在哪里?

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

2. HTTP和HTTPS

2.1 HTTP和HTTPS

  • HTTP
    • 超文本传输协议
    • 默认端口号:80
  • HTTPS
    • HTTP + SSL(安全套接字层)
    • 默认端口号:443

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

2.2 HTTP的请求过程

浏览器发送HTTP请求的过程

当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入https://www.baidu.com

简单来说这段过程发生了以下四个步骤:

  • 查找域名对应的IP地址。

    浏览器首先访问的是DNS(Domain Name System,域名系统),dns的主要工作就是把域名转换成相应的IP地址

  • 向IP对应的服务器发送请求。

  • 服务器响应请求,发回网页内容。

  • 浏览器显示网页内容。

浏览器渲染出来的页面和爬虫请求的页面并不一样

2.3 HTTP的请求形式

url的形式

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

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

http://localhost:4000/file/part01/1.2.html

http://item.jd.com/11936238.html#product-detail

HTTP请求的形式

常见的请求方法

  • GET
  • POST

GET方法和POST方法有什么区别?

  • Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的
  • Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制
  • Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集
  • Get执行效率却比Post方法好。Get是form提交的默认方法
方式 GET POST
外观上 在地址上看到传递的参数和值 地址栏上看不到数据
提交数据大小 提交少量数据,不同的浏览器最大值不一样,IE是255个字符 提交大量数据,可以通过更改php.ini配置文件来设置post提交数据的最大值
安全性
提交原理 提交的数据和数据之间在独立的 将提交的数据变成XML格式提交
灵活性 很灵活,只要有页面的跳转就可以get传递数据 不灵活

响应状态码

  • 200:成功
  • 302:临时转移至新的url
  • 307:临时转移至新的url
  • 404:找不到页面(not found)
  • 500:服务器内部错误

3. 字符串回顾

3.1 字符串类型的区别和转化

为什么要掌握 python3 字符串的相关知识

因为当我们模拟浏览器从网页上爬取下数据得到的都是字符串,我们在不断和字符串打交道,具体流程见下图:

3.2 str类型和bytes类型

  • bytes:二进制
    • 互联网上的数据都是以二进制的方式传输的
  • str:unicode的呈现形式

3.3 Unicode UTF8 ASCII的补充

  • 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等

  • 字符集(Character set)是多个字符的集合

    • 字符集包括:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集
    • ASCII编码是1个字节,而Unicode编码通常是2个字节
    • UTF-8是Unicode的实现方式之一,UTF-8它是一种变长的编码方式,可以是1,2,3个字节

3.4 str类型和bytes类型如何互相转化

  • str 使用 encode() 方法转化为 bytes
  • bytes 通过 decode() 方法转化为 str
  • 编码方式解码方式必须一样,否则就会出现乱码

  转载请注明: 浩大大 数据挖掘基本概念

  目录