zoukankan      html  css  js  c++  java
  • 爬虫基础 2.1 http原理

    爬虫基础 2.1 http基础原理

    写爬虫为啥要了解http的原理?

    为了简要的理解http的请求响应过程,便于爬虫的流程的掌握。

    2.11 URL和URL

        URI:统一资源标志符号

        URN: 统一资源名称 命名资源

        URL:统一资源定位符号 指定资源访问位置 例如网页链接

     

        资源:指的是网络上所有可以获得的内容的统称

    2.12 超文本

        网页的源代码HTML文件可以看作超文本,

    超文本"页面内可以包含图片、链接,甚至音乐、程序等非文字元素

    文本是收集,存储和浏览离散信息以及建立和表现信息之间关联的一门网络技术

     

    2.13 HTML 超文本标记语言

    为什么要了解HTML?

    HTML = 网页 爬虫爬取的大部分信息都是来自网页中的内容,因此对HTML要有掌握。

    HTML 指的是超文本标记语言 (Hyper Text Markup Language)

    HTML 是用来描述网页的一种语言。

    HTML 不是一种编程语言,而是一种标记语言 (markup language)

    标记语言是一套标记标签 (markup tag)

    HTML 使用标记标签来描述网页

    它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。

    浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程。

    在这里,需要掌握HTML的结构以及各种标签的特点:

        该章节内容在网页基础中包含

     

    2.14 HTTP和HTTPS

        HTTP超文本传输协议,网络上服务器通过该协议传输网页,但是网页内容为加密,不安全

        HTTPS HTTP的加强版,加密了传输过程,无法看到网页传输的明文

     

    2.15 HTTP请求过程

        用户想要知道网页上的内容,需要向服务器发起请求,而这些请求是包含很多参数和设置以及规定的语法的(超文本传输协议),手工实现请求很麻烦,于是就出现了浏览器。

        浏览器处于远程服务器和我们之间,帮助我们向服务器发起请求,解析服务器返回的数据。

        浏览器发起请求以及接受响应的过程:

    每一条包括一次请求和响应的过程,请求依次进行并解析响应内容,放入缓存。

    每次发起的请求都包括标头,正文,参数,cokie,等内容。但并不是这些内容(请求和响应)每次都包含。

    配置爬虫请求的时候多会关注标头,即请求头以及响应头。

    请求过程

    请求方法:

        浏览器或者客户端构造的请求内容包括请求头和请求体

        请求头:包含请求的重要参数,爬虫的需要构造

        请求体:一般是post的表单数据,使用get方法的请求体为空。

     

        常用方法:

                Get:请求参数直接包含在URL中 请求页面,服务器并返回请求响应

                Post:请求参数包含在post的表单中,多来提交表单或者上传文件

        其他方法:

                Head:类似get请求,返回响应中只有报头

                Put: 从客户端双重数据取代指定的文档中的内容

                Delete:请求服务器删除指定的页面、

                Connect: 将服务器当作跳板,让服务器代替客户端访问其他网页

                Options: 允许客户端查看服务器的性能

                Trace 回显服务器收到的请求,用测试或者诊断链接状态

     

        请求的网址:

                即网站的链接URL

     

     

        请求头:

    请求头为浏览器向 服务器发起请求构造的参数内容,主要参数 信息包括:cookie,refer,user-agent等,写爬虫的时候是需要配置这些重要的请求参数的,通过对参数的配置,来保证爬虫的长期有效,不被服务器识别封掉,因为大量的频繁的请求会占用服务器资源。

            常用的请求头包含的信息:

                    Accept 请求报头域,用于指定客户端可接受哪些类型的信息

                    Accept-Language 指定客户端可接受的语言类型

                    Accept-Encoding 指定客户端可接受的内容编码

    Host 用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位

                    HTTP 1. 版本开始,请求必须包含此内容

    Cookie 也常用复数形式 Cookies ,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据 它的主要功能是维持当前访问会话 例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是 Cookies 的功 Cookies 里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上 Cookies 并将其发送给服务器,服务器通过 Cookies 识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容

    Referer 此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这 信息并做相应的处理,如做来源统计、防盗链处理等

    User-Agent :简称 UA ,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本 浏览器及版本等信息 在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别州为爬虫

    Content-Type 也叫互联网媒体类型( Internet Media Type )或者 MIME 类型,在 HTT 协议消息头中,它用来表示具体请求中的媒体类型信息 例如, text/html 代表 HTML 格式,

                    image/gif 代表 GIF 图片,

    示例:

            请求体:

    请求体 般承载的内容是 POST 请求中的表单数据,而对于 GET 请求,请求体则为空,一般用于登录提交表单

    登录网站之前,我们填写了用户名和密码信息,提交时这些内容就会以表单数据的形式提交给服务器,此时需要注意 Request Headers 指定 Cont nt-Type application, x-www-form-urlencoded 只有设置Content-Type application/x-www-form-urlencoded ,才会以表单数据的形式提 另外,我们也可以Content-Type 设置为 pplication/ison 来提交 JSON 数据,或者设置为 mu lti part/form-data 上传文件

            注意:

     

    响应:

    响应内容,即服务器接收到请求以后向浏览器客户端发送的响应内容,响应内容包括响应头和响应体和响应状态码。

     

    响应码:

            响应码,表示服务器的响应状态。

                

            响应头:

    包含了服务器的请求应答信息,我是谁,我是什么型号,我返回的信息的编码方式,我们之间保持连接方式,我返回信息的格式,我返回信息的时间,我对cookie的设置要求等,主要包括,connect-typeseverset-cookie。。。

     

    Date 标识响应产生的时间

    Last-Modified 指定资源最后修改时间

    Content-Encoding 指定内容的编码

    Server 务器的信息 ,比如 、版本号等

    Content-Type 文档类型 ,指定返回的数据类型是什么 ,

        如 tex t/ htm 代表返回 HTML 文档,

        application/x-javascript 返回 JavaScript 文件,

        image jpeg 代表返回图片

    Set Cookie 设置 Cookie 应头中的 Set Cook 告诉浏览器需要将此内容放在 Co kies次请求携带 Cookies 请求

    Expires响应过期时间 可以使代理务器或浏览器将加载的内容更新到缓存中,如果再次访时,就可直接从缓存中夹载,降低服务器负载缩短载时间

            响应体:

    爬虫中最重要的就是响应体的内容,大多数时候爬取的内容都是解析自响应体,响应的正文数据都来自响应体

     

    请求网页:响应体是HTNL

    请求图片:响应体是图片的二进制数据流

    请求音乐视频:响应体是音乐视频的二进制流

     

            响应头示例:

                    

     

     

            响应体内容示例:

        

                

  • 相关阅读:
    数据库排名函数(Rank)
    请求支付报表的测试
    DateTime详细资料转载
    sqlserver2005的安装问题
    Hdu 1398 Square Coins
    HDU 1709 The Balance
    POJ 1423 Big Number
    hdu 1106 排序
    HDU 1028 Ignatius and the Princess III
    并查集Is It A Tree?hdu 1325
  • 原文地址:https://www.cnblogs.com/binyang/p/10990586.html
Copyright © 2011-2022 走看看