• 爬虫基础


    概述


    流程图

    1 发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,然后等待服务器响应。
    2 获取响应内容:如果服务器能正常响应,我们会得到一个Response,Response的内容便是所要获取的内容,类型可能有HTML、Json字符串,二进制数据(图片,视频等)等类型。这个过程就是服务器接收客户端的请求,经过解析发送给浏览器的网页HTML文件。
    3 解析内容:得到的内容可能是HTML,可以使用正则表达式,网页解析库进行解析。也可能是Json,可以直接转为Json对象解析。可能是二进制数据,可以做保存或者进一步处理。这一步相当于浏览器把服务器端的文件获取到本地,再进行解释并且展现出来。
    4 保存数据:保存的方式可以是把数据存为文本,也可以把数据保存到数据库,或者保存为特定的jpg,mp4 等格式的文件。这就相当于我们在浏览网页时,下载了网页上的图片或者视频。

    依赖于HTTP

    浏览器展示的结果可以由多次请求对应的多次响应共同渲染出来,而爬虫是一次请求对应一个响应

    1. 分类

    HTTP:超文本传输协议,默认端口号是80
    超文本:是指超过文本,不仅限于文本;还包括图片、音频、视频等文件
    传输协议:是指使用共用约定的固定格式来传递转换成字符串的超文本内容
    HTTPS:HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协,默认端口号:443
    SSL对传输的内容(超文本,也就是请求体或响应体)进行加密

    1. 爬虫特别关注的请求头和响应头
    • 请求头

    Content-Type HTML,js, css/png/jepg/gif
    Host (主机和端口号)
    Connection (链接类型) 长连接,短连接
    Upgrade-Insecure-Requests (升级为HTTPS请求) 将HTTP请求自动更新为HTTPS
    User-Agent (用户代理) 可以随意更改。告知服务器当前客户端的版本信息
    Referer (页面跳转处) 告知服务器,从哪里来。
    Cookie (Cookie) 告知服务器当前用户信息
    Authorization(用于表示HTTP协议中需要认证资源的认证信息,如前边web课程中用于jwt认证)

    • 响应头
    • 状态码

    200:成功
    302:跳转,新的url在响应的Location头中给出
    303:浏览器对于POST的响应进行重定向至新的url
    307:浏览器对于GET的响应重定向至新的url
    403:资源不可用;服务器理解客户的请求,但拒绝处理它(没有权限)
    404:找不到该页面
    500:服务器内部错误
    503:服务器由于维护或者负载过重未能应答,在响应中可能可能会携带Retry-After响应头;有可能是因为爬虫频繁访问url,使服务器忽视爬虫的请求,最终返回503响应状态码
    注意:所有的状态码都不可信,一切以是否从抓包得到的响应中获取到数据为准

    1. 浏览器的运行过程

  • 相关阅读:
    大道至简读后感(第二章)
    大道至简读后感
    将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档
    python之基础
    python之面向对象
    python之网络编程
    python之函数
    Managing SharePoint 2010 Farm Solutions with Windows PowerShell
    Oracle RMAN vs. Export?
    转帖在oracle中自动大批量生成测试数据
  • 原文地址:https://www.cnblogs.com/cizao/p/11484370.html
Copyright © 2020-2023  润新知