zoukankan      html  css  js  c++  java
  • Python爬虫9-request包介绍及应用

    GitHub代码练习地址:1.两种简单get请求方法:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac13_requests1.py
               2.带请求头与参数的get请求:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac14_requests2.py


    Requests-献给人类

      
      是urllib模块的完美替换,二者功能基本相同
      HTTP for Humans,更简洁更友好

      继承了urllib的所有特征
      底层使用的是urllib3
      开源地址: https://github.com/requests/requests
      中文文档: http://docs.python-requests.org/zh_CN/latest/index.html
      安装: conda install requests
     
    一、两种get请求方法:

      requests.get(url)
      requests.request("get", url)
      可以带有headers和parmas参数来请求

    二、requests下使用proxy代理
           proxies = {
    "http":"address of proxy",
    "https": "address of proxy"
    }

    rsp = requests.request("get", "http:xxxxxx", proxies=proxies)
    代理有可能报错,如果使用人数多,考虑安全问题,可能会被强行关闭

    用户验证
    代理验证
    可能需要使用HTTP basic Auth, 可以这样
    格式为 用户名:密码@代理地址:端口地址
    proxy = { "http": "china:123456@192.168.1.123:4444"}
    rsp = requests.get("http://baidu.com", proxies=proxy)
    web客户端验证
    如果遇到web客户端验证,需要添加auth=(用户名,密码)
    autu=("test1", "123456")#授权信息
    rsp = requests.get("http://www.baidu.com", auth=auth)

    三、requests下的cookie与session以及ssl证书相关问题
    cookie
    requests可以自动处理cookie信息
    rsp = requests.get("http://xxxxxxxxxxx")
    如果对方服务器给传送过来cookie信息,则可以通过反馈的cookie属性得到
    返回一个cookiejar实例
    cookiejar = rsp.cookies

    可以讲cookiejar转换成字典
    cookiedict = requests.utils.dict_from_cookiejar(cookiejar)

    session
    跟服务器端session不是一个东东
    模拟一次会话,从客户端浏览器链接服务器开始,到客户端浏览器断开
    能让我们跨请求时保持某些参数,比如在同一个session实例发出的 所有请求之间保持cookie

    创建session对象,可以保持cookie值
    ss = requests.session()

    headers = {"User-Agetn":"xxxxxxxxxxxxxxxxxx"}

    data = {"name":"xxxxxxxxxxx"}

    此时,由创建的session管理请求,负责发出请求,
    ss.post("http://www.baidu.com", data=data, headers=headers)

    rsp = ss.get("xxxxxxxxxxxx")

    https请求验证ssl证书
    参数verify负责表示是否需要验证ssL证书,默认是True
    如果不需要验证ssl证书,则设置成False表示关闭

    rsp = requests.get("https://www.baidu.com", verify=False)
    如果用verify=True访问某些证书有问题的网站会报错。
  • 相关阅读:
    HIVE调优之JVM重用
    元宇宙到底有多可怕
    关于c++、go、nodejs、python的计算性能测试,结果令人惊讶
    浏览器配套
    oracle 11gR2 离线静默自动安装
    kubernetes 污点与容忍
    Docker中centos7 安装 MySQL
    [Php] Yii2重载\yii\web\UploadedFile::getInstancesByName()以扩大使用范围
    php屏蔽Notice错误
    上传一个.prettierrc文件
  • 原文地址:https://www.cnblogs.com/sl0309/p/10550059.html
Copyright © 2011-2022 走看看