一、什么是Requests
Requests是用python语言编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库。
它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。
一句话——Python实现的简单易用的HTTP库
二、安装Requests
打开cmd命令行,输入如下代码:
pip install requests
三、用法讲解
实例引入
import requests
response = requests.get('http://www.baidu.com')
print(type(response)) #类型
print(response.status_code) #状态码
print(type(response.text))
print(response.text) #相当于urllib.request.urlopen
print(response.cookise)
各种请求方式
import requests
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/post')
requests.delete('http://httpbin.org/post')
requests.head('http://httpbin.org/post')
requests.options('http://httpbin.org/post')
不过这一块代码我还没有弄明白是干什么用的,了解以后再给大家加上。
请求
基本get请求
基本写法
import requests
response = requests.get('http://httpbin.org/get')
print(response.text)
带参数GET请求
把参数直接添加打url后边,同时这里要进行字符编码。如下所示,非常麻烦。
import requests
response = requests.get('http://httpbin.org/get?name=germey&age=22')
print(response.text)
因此我们可以字典的形式,将需要的参数传输到里面
import requests
data = {
'name':'germey',
'age':22
}
response = requests.get('http://httpbin.org/get',params=data)
print(response.text)
解析json
这里介绍一下json是什么,json(javaScript Notation ,JS对象的数据简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。精简喝清楚的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机械解析和生成,并有效地提升网络传输效率。任何支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。
简单地说,JSON可以将JacvaScript对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。
import requests
response = requests.get('http://httpbin.org/get')
print(type(response.text))
print(response.json())
print(type(response.json()))
获取二进制数据(可以抓起图片)
import requests
#获取目标图片的编码
response = requests.get('https://www.baidu.com/img/bd_logo1.png')
print(type(response.text),type(response.content)) #response.content获取二进制编码
print(response.text)
print(response.content)
#将网上抓取的图片保存到本地,使用with open('文件名','存储类型') as f:
with open(r'D:\python jiaoben\spyder\pictures\百度logo.jpg','wb') as f: #wb-以二进制的形式打开一个文件并只用于写入,如果该文件已经存在则打开,并从头开始编辑,即删除原有内容。如果文件不存在,创建新文件。\表示绝对路径,/表示相对路径。
f.write(response.content) #.write()是写入的意思。
f.close() #.close()关闭文件。在python中此行代码可以省略。