zoukankan      html  css  js  c++  java
  • urllib 库的代替品 requests 的用法

    Requuests 官方的介绍时多么的霸气,之所以那么霸气,是因为 Requestts 相比于 urllib 在使用方面上会让开发者感到更加的人性化、更加简洁、更加舒适,并且国外的一些公司也在使用requests库。

    看看他又那些特性:

      。Keep-Alive & 连接池

      。国际化域名和 URI

      。带持久 Cookie 的会话

      。浏览器式的 SSL认证

      。自动内容解码

      。基本/摘要式的身份认证

      。优雅的key/value Cookie

      。自动解压

      。Unicode 响应体

      。HTTP(S)代理支持

      。文件分块上传

      。流下载

      。连接超时

    ·  。分块请求

      。支持.netrc

    1、简单的专抓取页面

    import requests
    
    # 使用 get 请求方式
    response = requests.get("https://tieba.baidu.com/")
    print(response.text)


    # 使用 post 方式请求
    response = requests.post("https://tieba.baidu.com/")
    print(response.text)

    2、使用代理

      有些网站做了浏览器频率限制。如果我们请求该网站频率过高,该网站会封掉我们的 IP,禁止我们的访问,所以我们需要使用代理来突破这“枷锁”。这里需要用到 proxies参数,proxies 也是一个字典类型。具体用法如下

    imports
    
    url = "http://tieba.baidu.com/"
    proxies = {
           "http":"web-proxy.oa.com:8080",
            "https":"web-proxy.oa.com:8080"
           # 若你的代理需要使用 HTTP Basic Auth,可以使用 http://password@host/语法                   
    }
    
    response = requests.get(url, proxies = proxies)
    print(response.text)
    print(response.url)

    3、使用 Cookie

       想在响应结果中获取 cookie 的一些值,可以直接访问。

    response。cookies['key'] # key 为 Cookie 字典中键

      想发送 cookie 到服务器,可以使用 cookies 参数。同样该参数是字典类型

    url = ‘http://httpin.org/cookies/'
    
    cookies = {"domain":'httpin.org',}
    
    response = requests.get(url, cookies = cookies)
    print(response.text)
  • 相关阅读:
    微软免费人工智能课程
    如何定义,创建,启动一个线程
    什么是进程,什么是线程?
    Hashtable 数据遍历的几种方式
    action中result没有值
    <global-results>怎么用
    普通请求和ajax请求的区别
    result默认返回action中的所有数据,要想返回指定的数据怎么做呢
    ajax技术的应用?
    什么是国际化
  • 原文地址:https://www.cnblogs.com/jcjc/p/11124992.html
Copyright © 2011-2022 走看看