当前位置:u赢电竞手机版 > uwin电竞app官网下载 > Python Requests库基本用法示例uwin电竞app官网下载

Python Requests库基本用法示例uwin电竞app官网下载

文章作者:uwin电竞app官网下载 上传时间:2019-05-19

8 使用代理

post上传文件

response.request 对应的请求对象
response.raw socket上直接获得的数据
response.text 根据响应头进行解码的文本数据
response.content 不解码,返回二进制数据
response.json() 对返回数据进行json解码
response.headers 词典形式存储返回的headers
response.cookies 词典形式存储返回的cookies

现在我们尝试创建一个请求,用来获取百度的网页信息:

证书验证

你也可以传递一个元组数据:

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

print result.json()     # [{"id":"6924608641","type":"PushEvent",...}]
pip install requests[socks]



proxy={
  'http':'http://127.0.0.1:8000',
  'https':'https://127.0.0.1:8080'
  'http':'socks5://user:pass@127.0.0.1:8132'
}
r=requests.get('https://www.github.com/',proxies=proxy)
cookie = {'userName':'zhangsan'}
result = requests.get('http://localhost:5000/get',cookies=cookie)
r=requests.get('http://www.baidu.com/',timeout=2.5)
result = requests.get('http://localhost:5000/get')
print result.status_code  # 200

您可能感兴趣的文章:

  • python采用requests库模拟登录和抓取数据的简单示例
  • python中requests库session对象的妙用详解
  • Python中第三方库Requests库的高级用法详解
  • Python3.6安装及引入Requests库的实现方法
  • python中数据爬虫requests库使用方法详解
  • 基于python requests库中的代理实例讲解
  • 使用requests库制作Python爬虫
  • 解决Python requests库编码 socks5代理的问题
  • python利用requests库进行接口测试的方法详解
  • mac下给python3安装requests库和scrapy库的实例
  • Python requests库用法实例详解

也可以传递一个列表进去:

如果指定本地证书及密钥,则密钥需要是解密的。

但是如果我们的请求是执行成功的,即状态码为200,此时raise_for_status()的值将会是None

默认requests是允许重定向的,并将重定向的历史保存在response.history数组中
如果不需要重定向,可以通过开关来关闭

响应状态码

3 发送post参数

此时我们打印一下URL,发现该URL已经被正确编码:

使用socks代理需要安装三方扩展包

当我们执行一个错误的请求(4XX客户端错误,5XX服务器错误)时,我们可以以下方法来抛出异常进行检车:

7 重定向

Session对象允许你在请求中保存某些参数,它将在所有由会话实例创建的请求中保存Cookie,并将使用urllib3连接池。如果你想同一主机发出多个请求,则会重新使用底层的TCP连接,这将使性能显著提高。Session具有主API的所有请求方法:

5 携带header

请求和响应对象

0 安装

result = requests.get("https://api.github.com/events",stream=True)
print result.raw        # <urllib3.response.HTTPResponse object at 0x10ce52dd8>
print result.raw.read(10)    # b'x1fx8bx08x00x00x00x00x00x00x03'

9 设置连接超时

创建请求

6 携带cookie

或者使用Session方式存储起来:

希望本文所述对大家Python程序设计有所帮助。

import requests
pip install requests

但是请注意,方法级参数不会保存在请求,即使使用一个session。这个栗子只会发送第一个请求的Cookie,不会发送第二个:

本文实例讲述了Python Requests库基本用法。分享给大家供大家参考,具体如下:

result = requests.get('http://en.wikipedia.org/wiki/Monty_Python')

10 ssl证书

Session对象

param={'key1':value1,'key2':value2}
r=requests.get('http://www.baidu.com/',params=param)
result = requests.get("https://api.github.com/events")
print result.text    # [{"id":"6924608641","type":"PushEvent",...}]
cookie={'key1':value1,'key2':value2}
r=requests.get('http://www.baidu.com/',cookies=cookie)

我们可以使用Python字典来查看服务器的响应头文件:

12 Response对象

每当你发起一个GET请求,你都在做两件事。首先,构造一个Request将被发送到服务器的对象来请求或查询某个资源。其次,Response一旦从服务器中获得响应,就会生成一个对象。该Response对象包含服务器锁返回的所有信息,并且还包含Request你最初创建的对象。这是一个简单的请求,从维基百科的服务器获取一些非常重要的信息:

r.url r.text r.headers

当返回200,表示请求执行成功,我们还可以使用如下方法判断请求是否成功,True为成功,False不成功:

header={'key1':value1,'key2':value2}
r=requests.get('http://www.baidu.com/',headers=header)
s = Session()
s.verify='/path/...'
result = s.get('https://kyfw.12306.cn/otn/login/init')
param={'key1':value1,'key2':value2}
r=requests.post('http://www.baidu.com/',params=param) #表单格式
r=requests.post('http://www.baidu.com/',json=param) #json格式数据
file= {'file':open('1.txt','rb')}
r=reuqest.post('http://httpbin.org/post',files=file)
print result.content  # b'[{"id":"6924656608","type":"CreateEvent",...}]'

4 文件下载

在上面的例子可以知道,我们每次请求之后都会返回一个对象,我们可以从此对象中获取响应内容:

requests是python的一个http client库,提供了一套简捷的API供开发者使用。下面简单介绍一下其安装和使用。这里是官方文档。

infoDict = {"name":"张三"}
result = requests.post('http://127.0.0.1:5000/test/post',json=infoDict)

11 requests对象

注意,如果你传递了 style="color: #0000ff">data参数或者 style="color: #0000ff">files,那么 style="color: #0000ff">json将会被忽略

2 发送get参数

JSON格式的响应内容,如果解码失败,result.json()将会引发异常

1 发送请求

requests是Python中一个第三方库,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。接下来将记录一下requests的使用:

r=requests.get('https://www.baidu.com')
print r.status_code,r.text
r=requests.post('http://httpbin.org/post')
r=requests.put('http://httpbin.org/put')
r=requests.delete('http://httpbin.org/delete')
r=requests.head('http://httpbin.org/head')
r=requests.options('http://httpbin.org/')
print result.encoding
r=requests.get('http://www.baidu.com/',allow_redirects=False)

复杂的post请求

with open('1.pic','wb') as pic:
  for chunk in response.iter_content(size):
    pic.write(chunk)

现在我们需要获取服务器发送给我们的头文件信息:

requests.get('https://kennethreitz.com', verify=True)
requests.get('https://kennethreitz.com', cert=('/path/server.crt', '/path/key'))

为了避免出现这个错误,我们可以将CA证书的CA_BUNDLE文件或目录传递给verify参数里面:

RequestCookieJar提供了一个完整的接口,适合在多个域和路径中使用,它将返回一个Cookie,所以它也可以被传入到cookies参数中

result = s.get('http://httpbin.org/cookies', cookies={'from-my': 'browser'})
print(result.text)
# '{"cookies": {"from-my": "browser"}}'
result = s.get('http://httpbin.org/cookies')
print(result.text)
# '{"cookies": {}}'
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"}}'

如果你想将自定义请求头添加到请求当中,只需要传递一个字典到headers参数即可。例如,在请求中指定我们的请求代理:

如果响应包含了Cookie,你可以这样快速的访问它:

如果响应的内容并不是你想要的编码格式,你可以在调用result.text之前,对result.encoding进行赋值,给予新的编码格式。

通常情况下,你想要发送一些表单编码数据,就像HTML表单一样。要做到这一点,你只需要将字典传递给data参数即可:

通常情况下,我们使用如下这种模式来保存正在流式传输的内容:

print result.headers    # {'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '2', 'Server': 'Werkzeug/0.12.2 Python/2.7.10', 'Date': 'Sun, 03 Dec 2017 14:15:32 GMT'}

二进制响应内容

result = reqests.get('https://kyfw.12306.cn/otn/login/init')
# requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

请求将验证HTTPS请求的SSL证书,就像Web浏览器一样。默认情况下,启用SSL验证,如果无法验证SSL证书,将会引发SSLError:

很简单对吧?那么其他HTTP请求呢:PUT、DELETE、HEAD和OPTIONS呢?

本文由u赢电竞手机版发布于uwin电竞app官网下载,转载请注明出处:Python Requests库基本用法示例uwin电竞app官网下载

关键词: