爬虫基础

爬虫基础

  • HTTP基本原理

    • URI----UniformResource Identifier----统一资源标志符

      • 统一资源标识符,用来唯一的标识一个资源

      • 例如:https://www.cnblogs.com
    • URL---Universal Resource Locator---统一资源定位符

      • 统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源
      • 例如:https://www.cnblogs.com/liyihua/
    • Hypertext---超文本

      • 网页源代码是一系列 HTML 代码,里面包含了一系列标签,如 img 显示图片,p 指定显示段落等,浏览器解析这些标签后便形成了我们平常看到的网页,而这网页的源代码HTML 就可以称作超文本
    • HTTP和HTTPS(简单的讲:HTTPS是HTTP的安全版

      • http是一种协议,全称超文本传输协议,所有的www文件都必须遵守这个标准
      • https,是以安全为目的的http通道,简单讲是http的安全版
      • 安全性:http不安全,https安全
      • 加密:http无法加密,https加密传输
      • 证书:http无需证书,https需证书
    • HTTP请求过程

      • 爬虫基础_第1张图片
    • HTTPS请求过程

      • 爬虫基础_第2张图片

    • 请求

       

      • 请求方法---Request Method

        • 常用方法:GET和POST
          • GET :请求页面,并返回页面内容
          • POST:大多用于提交表单或上传文件,数据包含在请求题中
      • 请求的网址---Request URL

        • 请求的网址,即统一资源定位符,用 URL 可以唯一确定我们想请求的资源
      • 请求头---Request Headers

        • 用来说明服务器要使用的附加信息
      • 请求体---Request Body

        • 请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,请求体则为空
    • 响应

      • 响应状态码---Response Status Code

        • 例如:

          307  临时重定向  请求的资源临时从其他位置响应。
          400  错误请求  服务器无法解析该请求。
          401  未授权  请求没有进行身份验证或验证未通过。
          403  禁止访问  服务器拒绝此请求。
          404  未找到  服务器找不到请求的网页。
          405  方法禁用  服务器禁用了请求中指定的方法。
          406  不接受  无法使用请求的内容响应请求的网页。
          407  需要代理授权  请求者需要使用代理授权。
          408  请求超时  服务器请求超时。

      • 响应头---Response Headers

        • 响应头包含了服务器对请求的应答信息
      • 响应体---REsponse Body

        • 最重要的当属响应体内容了,响应的正文数据都是在响应体中
        • 例如:请求一个网页,它的响应体就是网页的 HTML 代码;请求一张图片,它的响应体就是图片的二进制数据。
  • 网页基础

    • 网页的组成

      • HTML 定义了网页的内容和结构, css 描述了网页的布局, JavaScript 定义了网页的行为 。

      1. HTML---Hyper Text Markup Language---定义网页结构

        • 描述网页的一种语言,即超文本标记语言。
      2. CSS---CascadingStyle Sheets---层叠样式表

        • HTML 定义了网页的结构,但是只有 HTML 页面的布局并不美观,借助CSS,页面会变得更加美观、优雅

      3. JS---JavaScript(是一种脚本语言)

        • 是一种动态类型、弱类型、基于原型的语言,内置支持类型
        • 在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能
    • 网页的结构

      • DOCTYPE html>       # DOCTYPE 定义文档类型
        <html>                       # html标签
        <head>                       # 网页头:一些页面的配置和引用
        <meta charset="UTF-8">               # 网页编码:UTF-8
        <title>This is a Demotitle>                # 定义网页标题
         head>
        <body>                       # 网页体:在网页正文中显示的内容
        <div id=”container”>               # div标签:定义网页中的区块,它的id是container
        <div class="rapper”〉               # 它的class是wrapper
        

        =”title”>Hello Worldh2> # h2标签:二级标题 <p class=”text”>Hell口, this i s a paragraph.p> # p标签:代表一个段落 div> div> body > html>

      • 爬虫基础_第3张图片代码保存后,浏览器打开该文件。

         

    • 节点树及节点之间的关系

      • 在HTML中,所有标签定义的内容都是节点,它们构成了一个HTML DOM 树
      • DOM---Document Object Model---文档对象模型
        • DOM是W3C(万维网联盟)的标准
      • HTML DOM 将 HTML 文档视作树结构,这种结构被称为节点树爬虫基础_第4张图片

    • 节点树中的节点彼此拥有层次关系(顶节点称为根--root)

      • 父(parent)、子(child)、兄弟(sibling)
      • 爬虫基础_第5张图片节点树及节点之间的关系
    • 选择器

      • 网页是由一个一个的节点组成的,CSS选择器会根据不同的节点设置不同的样式规则。
      • CSS 中,选择器是一种模式,用于选择需要添加样式的元素
      • 例如:
      • 爬虫基础_第6张图片

         

  • 爬虫的基本原理

    • 爬虫概述

      • 1、获取网页---获取网页的源代码

      • 2、提取信息:

        • 1、通用方法:正则表达式
        • 2、根据网页节点的属性:CSS选择器、XPath 来提取网页信息的库(例如:Beautiful Soup、pyquery、lxml等)
      • 3、保存数据

        • 提取信息后,保存到数据库,如MySQL和MongoDB等,也可以保存至远程服务器,如借助SFTP进行操作等
      • 自动化程序---爬虫代替人完成操作

    • JavaScript渲染页面

      • JavaScript会改变HTML中的节点,向其添加内容,最后得到完整的页面
      • 使用urllib或requests等库请求当前页面时,得到的只是这个HTML代码。可使用Selenium、Splash这样的库来实现模拟JavaScript渲染。
  • 会话(服务端) 和 Cookies(客户端) --- 保持 HTTP连接状态

     

    • 静态网页

      • 网页的内容是 HTML 代码编写的,文字、图片等内容均通过写好的 HTML 代码来指定 , 这种页面叫作静态网页

        • 优点:加载速度快、编写简单
        • 缺点:可维护性差 ,不能根据URL灵活多变地显示内容等
    • 动态网页:页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。

    • 无状态HTTP

      • HTTP 的无状态是指 HTTP 协议对事务处理是没有记忆能力的,也就是说服务器不知道客户端是什么状态 。

    • 会话

      • 其本来的含义是指有始有终的一系列动作/消息

      • 在 Web 中,会话对象用来存储特定用户会话所需的属性及配置信息

    • Cookies

      • 某些网站为了辨别用户身份 、 进行会话跟踪而存储在用户本地终端上的数据

    • 会话维持---Cookies 和会话需要配合,一个处于客户端,一个处于服务端,二者共同协作,实现登录会话控制

    • 属性结构

      • Cookie:

        • Name、Value、Domain、MaxAge、Path、Size字段、HTTP 字段、Secure

    • 会话 Cookie和持久 Cookie 

      会话 Cookie就是把 Cookie放在浏览器内存里,浏览器在关闭之后该 Cookie 即失效 ; 持久 Cookie则会保存到客户端的硬盘中,下次还可以继续使用,用于长久保持用户登录状态

  • 代理的基本原理

    • 基本原理

      • 代理服务器(proxy server)---实现IP伪装
      • 功能:代理网络用户去取得网络信息---网络信息的中转站
      • 在本机和服务器之间搭建一个桥,此时本机不是直接向Web服务器发起请求,而是向代理服务器发出请求
    • 代理的作用

      • 突破自身IP的访问限制
      • 访问一些单位或团体的内部资源
      • 提高访问速度
      • 隐藏真实IP
    • 爬虫代理

      • 爬虫爬取速度过快,在爬取过程中可能遇到同一个 IP访问过于频繁的问题,此时网站就会让我们输入验证码登录或者直接封锁IP。

        使用代理隐藏真实的 IP,让服务器误以为是代理服务器在请求向己。

        在爬取过程中通过不断更换代理,就不会被封锁,可 以达到很好的爬取效果。

    • 代理分类


      • 1、根据协议区分

        • FTP代理服务器、HTTP 代理服务器、SSL厅LS代理、RTSP 代理、Telnet代理、POP3/SMTP 代理、SOCKS 代理

      • 2、根据匿名程度区分

        • 高度匿名代理、普通匿名代理、透明代理、间谍代理

    • 常见的代理设置

      • 使用网上的免费代理、使用付费代理服务、ADSL 拨号

你可能感兴趣的:(爬虫基础)