• 爬虫的前导知识及requests模块


    目录

    爬虫的前导知识

    端口

    通讯协议

    网络模型

    抓包工具

    HTTP的请求和响应

    Request Headers(重点)

    Query String Parameters

    爬虫的四个基本步骤

    requests模块的运用

    urllib vs requests

    渲染

    requests常用方法

    get 和post请求的优缺点

    requests设置代理ip

    处理不被信任证书的网站


    爬虫的前导知识

    端口

    每一个应用程序都有自己独立的标识 这个标识我们称之为端口

    mysql 3306
    mongodb 27017

    通讯协议

    TCP/IP 国际组织定义的通用的通信协议
    HTTP 超文本传输协议 通讯协议 80  html 超文本标记语言 超文本(网页源代码html)

    网络模型

    https = http + ssl  是以安全为目标的http通道  443
    - http的安全版本 ssl是用于web的安全传输协议
    - http和ssl是在应用层的

    抓包工具

    Elements 元素 网页源代码 用来提取和分析数据的 可以用来分析页面结构 分析数据
    Console 控制台 后期分析js代码的时候 可以通过打印来找规律 前期用不着
    Sources 资源 信息的来源 整个网站加载的资源 分析js代码的时候使用 进行调试 前期用不着
    network(很重要) 网络工作(数据抓包) 服务器和客户端的交互记录都在network里面,客户端发起请求以及服务器返回响应在network里面都是可以找得到的

    HTTP的请求和响应

    Request URL 请求的地址
    Request Method 请求的方式(get post 一般我们看到的是啥请求方式就用啥请求方式 但有时也要具体情况具体分析)
    Status Code 状态码
        
    静态加载的页面 数据都在网页源码中
    动态加载的页面 Requests URL(目标url)是需要去network中分析数据包才能找到的 response看响应的结果

    Request Headers(重点)

    headers请求头 = {
        请求方式 目标url (不加)
        Host: www.baidu.com 域名 (可加可不加)
        Connection: keep-alive 长连接 (不加)
        User-Agent: 用户代理(操作系统、浏览器和浏览器版本号) 一般是反反爬的第一步 (加)
        Accept-Encoding: gzip, deflate (不加 加了数据可能会出现问题)
        Cookie:xxx 记录 用户信息,用于爬取登陆后才能访问的网站 (加不加看情况) 一般有时间限制
        Referer:xxx 页面跳转 记录了当前页面是由哪个页面(url)过来的,可以用于反反爬(加不加看情况)
    }

    Query String Parameters

    有url中的所有参数

    爬虫的四个基本步骤

    • 解析网页(确定数据在哪个网页)

    • 发送请求

    • 解析数据

    • 保存数据

    requests模块的运用

    urllib vs requests

    1. requests不需要处理中文
    2. requests不需要拼接url地址
    3. requests直接用get方式就可以传递headers

    渲染

    服务器端渲染:
        能够在网页源码中看到数据
    客户端渲染:
        不能够在网页源码中看到数据

    requests常用方法

    encoding                       #获取当前的编码
    encoding = 'utf-8'             #设置编码
    text                           #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
    content                        #以字节形式(二进制)返回。
    get(url,headers=headers,verify=false,proxies={'http':'194.5.193.183:80'},timeout=1)

    get 和post请求的优缺点

    1. post 请求获取数据量更大(url长度有限制)
    2. post获取数据类型更多
    3. post 更加安全,get的参数在网址里
    4. post请求比get慢

    requests设置代理ip

    作用:

    1. 隐藏真实的ip
    2. 反爬策略

    代理ip的匿名度:

    1. 透明 服务器知道你使用了代理ip 也知道你的真实ip
    2. 匿名 知道你使用了代理ip 但不知道你的真实ip
    3. 高匿 不知道使用了代理ip 也不知道真实ip

    如何查ip:

    1. cmd-->ipconfig 内网ip 私有的地址 局域网 
    2. https://www.ipip.net/ 外网 能够用于上网的ip  http://httpbin.org/ip

    处理不被信任证书的网站

    https://inv-veri.chinatax.gov.cn/

    需求:向一个不被SSl信任的网站发起请求 爬取数据
    目标url:https://inv-veri.chinatax.gov.cn/

    SSL证书:数字证书的一种 配置在服务器上面的
    SSL证书的特点:遵循了SSL协议 由收信任的数字证书颁发机构 验证身份之后颁发的证书
                 同时具有服务器身份验证和数据传输加密功能

    requests verify:true(默认)  改为false

    SSL证书的发展历程:
    为啥网站会出现SSL证书? 具有服务器身份验证和数据传输加密的功能
    https = http + ssl

  • 相关阅读:
    1.11 小红书起号必看,如何找到适合自己的对标账号?【玩赚小红书】
    工具类-Queue、Deque类总结
    python08_函数练习
    EDF文件格式/规格说明
    怎么样做好自己的服务器防御
    java面试之基础问题
    地平线开发板配置网段
    可行性研究报告模板
    校园跑腿小程序源码系统+多校园版+取快递+食堂超市跑腿+外卖 带完整的搭建教程
    设计公司网站怎样才能提升颜值?
  • 原文地址:https://blog.csdn.net/qq_51179608/article/details/126651814