学习笔记 -- Python爬虫 - 基础知识

#内容为个人理解,若有错误还望各位大佬指正



什么是爬虫


网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。网络爬虫为搜索引擎从万维网下载网页。也被叫做 网络蜘蛛。
简单来说就是通过某种手段,机械化的去浏览网页,并将想要得到的内容拿出来

爬虫在使用场景种的分类


  • 通用爬虫:
    抓取系统重要组成部分。抓取的是一整张页面数据

  • 聚焦爬虫:
    建立在通用爬虫基础之上。抓取的页面中特定的局部内容(数据解析)
    数据解析的三种方式:

    • 正则表达式

          1.进行指定标签的定位
          2.标签或者标签对应的属性中存储的数据进行提取(解析)
      
    • bs4

          1.实例化一个BeautifulSoup对象, 并且将页面源码数据加载到该对象中
          2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取
      
          环境安装:
          	pip install bs4
          	pip install lxml
      
    • Xpath

          1.实例化一个etree对象, 且需要将解析的页面源码数据加载到该对象中
          2.调用etree对象中的xpath方法结合xpath表达式实现标签的定位和内容的捕获
          
          环境安装:
          	pip install lxml
      
  • 增量式爬虫:
    检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据



反爬


见名知意, 就是为了防止别人爬取自己网页当中的数据而做出的防御措施(例如某进货网站当中的 security-x5 )

反反爬


与反爬相对立, 专门破解网页当中的一些防御措施, (比如你想要去网页当中拿到你想要的东西, 但是网页会有登录提示, 或者滑块, 通过某种手段让计算机模拟操作来通过这一阶段)

robots.txt协议


君子协议, robots协议也被称为爬虫协议, 网站通过 robots 协议来告诉搜索引擎哪些内容是可以爬取,哪些内容是不可以爬取的。这并非一种强有力的防御措施或是某种手段, 而是告知对方的一种方式。(在网址的后方写入 robots.txt 即可查看相关信息)

http协议


服务器和客服端进行数据交互的一种形式。
好比两个间谍潜伏在同一个内部, 当这两个人沟通时为了防止敌人识别两人的沟通内容, 会制定一种特殊的沟通协议。这种协议就类似于 http协议



请求头信息


客户端向服务器发出的请求信息


指令内容
User-Agent请求载体的身份标识
Connection请求完毕后, 是否断开连接
Accept告诉服务器,浏览器可以接受的文件格式(例如文本,图片,视频等
Accept-Charaset浏览器接受的字符编码
Accept-Encoding可以接受哪些压缩后的数据
Accept-Language浏览器支持的语言
Host浏览器要找的主机
IF-MODIFIED-Since: file,time告诉服务器缓存中的文件,以及这个文件的时间
Referer告诉服务器来源, 常用于防止下载, 盗链
Date浏览器发送数据的请求时间


响应头信息


服务器收到客户端发出请求所作出的响应信息


指令内容
Content-Type服务器响应回客户端的数据类型(即 内容格式和编码)
Server告诉浏览器我是 ???
Content-Encoding:gzip告诉浏览器使用了gzip
Content-Lenght告诉浏览器回送的数据大小
Content-Language支持的语言
Last-Modified告诉浏览器该资源上次更新时间是多少
Refresh过多久刷新到哪里去(url=)
Content-Dipposition告诉浏览器有文件下载
Transfer-Encoding传输编码
Expires告诉浏览器如何缓存页面
Cache-Control告诉浏览器如何缓存页面(因为浏览器的兼容性 最好设置两个)

#部分消息头和响应头来源于其他博主

https协议


安全的超文本传输协议, https和http基本上是相同的, https种的 s 就是 security(安全) 的意思。涉及 数据加密


数据加密方式

  • 对称密钥加密
    1. 由客户端对数据进行加密
    2. 将加密的数据以及密钥一同发送给服务器 (密钥:解密的方式)
    3. 服务收到密文及密钥并进行破解收取数据
客户端
密文及密钥
服务器
		弊端:在请求的过程中, 如果数据被拦截则信息暴露

  • 非对称密钥加密

    1. 由服务器设定某种加密方式并发送给客户端
    2. 客户端按照服务器发来的加密方式对数据进行加密再发送给服务器
    3. 服务器使用自身设定的加密方式进行解密
服务器
设定加密方式 密钥
客户端
接收密钥
加密数据
		弊端:在服务器向客服端发送密钥时, 如果密钥被截取并篡改, 那么客户端将无法收到由服务器直接发送来的密钥
  • 证书密钥加密

    1. 服务器制定密钥
    2. 将密钥转交第三方 证书认证机构
    3. 证书认证机构将收到的密钥进行签名认证
    4. 将证书及密钥一并转交给客户端
服务器
证书认证机构
密钥认证
客户端


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值