zoukankan      html  css  js  c++  java
  • Requests文档 阅读笔记

    Request库

    Requests is an elegant and simple HTTP library for Python, built for human beings.

    Request库是日常中经常使用的库,总结一下吧。附上文档Requests: 让 HTTP 服务人类

    发送请求

    #使用requests库前都要导入requests库
    import requests     
    
    #发送GET,POST,PUT,DELETE,HEAD 以及 OPTIONS 请求
    r = requests.get('https://www.cnblogs.com/thenbz3/')
    r = requests.post('https://www.cnblogs.com/thenbz3/')
    r = requests.put('https://www.cnblogs.com/thenbz3/')
    r = requests.delete('https://www.cnblogs.com/thenbz3/')
    r = requests.head('https://www.cnblogs.com/thenbz3/')
    r = requests.options('https://www.cnblogs.com/thenbz3/')
    

    传递URL参数

    #GET请求时传递参数
    payload = {'key1':'value1', 'key2':'value2', 'key3' : ['value3','valua4']}
    r = requests.get('http://httpbin.org/get', params = payload)
    print(r.url)
    
    #相当于
    r = requests.get('http://httpbin.org/get?key1=value1&key2=value2&key3=value3&key3=value4')
    

    更加复杂的POST请求

    #POST请求时传递参数
    import requests
    
    payload = {'key1' : 'value1', 'key2' : 'value2'}
    r = requests.post('http://httpbin.org/post', data = payload)
    
    #或者用元组列表
    paylaod = (('key1', 'value1'),('key1', 'value2'))
    r = requests.post('http://httpbin.org/post', data = payload)
    

    响应内容

    #以GET请求举例,会以html代码形式返回页面的内容
    import requests 
    
    url = 'https://www.cnblogs.com/thenbz3/'
    r = request.get(url)
    html = t.text
    print(html)
    print(r.encoding)
    
    #还可以更改返回页面内容的编码
    r.encoding = 'utf-8' 
    print(r.encoding)
    
    
    # 响应状态码
    r.status_code
    r.status_code == requests.codes.ok   #内置状态码查询对象
    r.raise_for_status()                 #抛出异常,无异常返回None
    print(r)
    
    

    定制请求头

    import requests
    
    url = 'https://www.cnblogs.com/thenbz3/'
    headers = {'user-agent' : 'my-app/o.o1'}
    r=request.get(url,headers = headers)
    
    r.cookies['cookie的键名']
    
    #发送请求时带cookie
    url = 'http://httpbin.org/cookies'
    cookies = dict(cookies_are='working')
    r = requests.get(url, cookies=cookies)
    
    #Cookie Jar
    jar = requests.cookies.RequestsCookieJar()
    jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies')
    jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere')
    url = 'http://httpbin.org/cookies'
    r = requests.get(url, cookies=jar)
    r.text
    
    '{"cookies": {"tasty_cookie": "yum"}}'
    

    重定向

    #allow_redirects=False  禁用重定向
    r = requests.get('http://github.com', allow_redirects=False)
    
    

    会话对象Session

    #会保持同一个cookie,和某些参数,在编写脚本的时候如果没有特殊要求,最好用session
    import requests
    
    s = requests.session()
    
    s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
    r = s.get("http://httpbin.org/cookies")
    
    print(r.text)
    # '{"cookies": {"sessioncookie": "123456789"}}'
    
    
    #不过需要注意,就算使用了会话,方法级别的参数也不会被跨请求保持。下面的例子只会和第一个请求发送 cookie ,而非第二个
    r = s.get('http://httpbin.org/cookies', cookies={'from-my': 'browser'})
    print(r.text)
    # '{"cookies": {"from-my": "browser"}}'
    
    r = s.get('http://httpbin.org/cookies')
    print(r.text)
    # '{"cookies": {}}'
    
    
  • 相关阅读:
    Java操作zip压缩和解压缩文件工具类
    Java操作图片的工具类
    使用Jacob操作Wrod文档的工具类代码
    Java计算文件的SHA码和MD5码
    Java 文件名操作的相关工具类
    Java中windows路径转换成linux路径等工具类
    JDBC的批量批量插入
    显示创建一个表的SQL语句
    MySQL中的保留字
    插入到Mysql数据库中的汉字乱码
  • 原文地址:https://www.cnblogs.com/thenbz3/p/11453497.html
Copyright © 2011-2022 走看看