requests的应用
Requests库的7个主要方法
方法 说明 requests.request() 构造一个请求,支撑以下各方法的基础方法 requests.get() 获取HTML页面的主要方法,对应于HTTP的GET requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD requests.post() 向HTML网页提交POST请求,对应于HTTP的POST requests.put() 向HTML网页提交PUT请求,对应于HTTP的PUT requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH requests.delete() 向HTML网页提交删除请求,对应于HTTP的DELETE
1.requests发送get请求
import requests
requests.get('http://www.baidu.com/s' ,params = {'wd' :'hello' })
requests.get('http://www.baidu.com/s' ,params = dict(wd ='python' ))
2.requests发送post请求
import requests
url = 'http://127.0.0.1:8000/login'
r = requests.post(url,data=dict(username='daiyu' ,password='nicai1993' ))
print(r.content.decode())
3.requests下载图片
import requests
url = "图片地址"
r = requests.get(url)
with open('demo.jpg' ,'wb' ) as f:
f.write(r.content)
4.requests下载大文件
import requests
url = "地址"
filename = url.split('/' )[-1 ]
r = requests.get(url,stream = True )
with open('filename' ,'wb' ) as f:
for chunk in r.iter_content(chunk_size=512 ):
if chunk:
f.write(chunk)
5.requests请求响应信息
import requests
resp = requests.get('http://www.baidu.com' )
print(resp.headers)
print(resp.requests.headers)
print(resp.text)
print(resp.content)
print(resp.raw)
print(resp.json())
6.requests超时时间
import requests
r = requests.get(url='http://www.baidu.com' ,timeout = 0.5 )
7.requests发送cookie信息
import requests
url = 'http://127.0.0.1:8000/login'
cookies = dict(
test = 'testing'
)
resp = requests.get(url,cookies)
print(resp)
8.重定向
import requests
r = requests.get('http://www.baidu.com/' ,allow_redirects = False )
r = requests.get('http://www.baidu.com/' ,allow_redirects = True )
9.requests文件上传
import requests
url = ""
files = {
'file' :open('somefile.txt' ,'rb' )
}
r = requests.post(url,files=files)
10.requests发送json数据
import json
import requests
url = ""
user = {
'username' :'gavin'
}
requests.post(url,data=json.dumps(user))
requests.post(url,json=user)
11.requests 代理
import requests
proxies = {
'http' :'http://101.236.35.98:8866' ,
'https' :'https://180.121.132.184:808'
}
r = requests.get('http://www.baidu.com' ,proxies = proxies)
print(r.text)
12.requests会话
import requests
session = requests.Session()
session.get('http://httpbin.org/cookies/set/sessioncookie/123456789' )
r = session.get('http://httpbin.org/cookies' )
print(resp.text)
resp = session.get('http://httpbin.org/cookies' ,cookies= {'name' :'xiaoming' })
print(resp.text)
resp = session.get('http://httpbin.org/cookies' )
print(resp.text)
session = requests.Session()
session.auth = ('gavin' ,'123456' )
session.headers.update({'x-test' :'true' })
r = session.get('http://httpbin.org/headers' ,headers={'x-test2' :'true' })
print(r.request.headers)
with requests.Session as session:
session.get('http://www.baidu.com' )
13.预请求
from requests import Request,Session
session = Session()
url = 'http://www.baidu.com'
req = Request('GET' ,url,headers=None )
prepped = session.prepare_request(req)
print(type(prepped))
with session.send(prepped,timeout = 0.5 ) as response:
print(response.status_code)