Table of Contents
json() 请求的是 json格式的可以调用 json()方法
get 请求
requests.get()
import requests
r = requests.get('http://www.baidu.com')
print(r.status_code)
print(r.headers)
print(r.cookies)
print(r.content)
print(r.text)
params 参数
import requests
data = {
'name': 'germey',
'age': 22
}
r = requests.get("http://httpbin.org/get", params=data)
print(r.text)
r2 = requests.get('http://httpbin.org/get?name=germey&age=22')
print(r2.text)
json() 请求的是 json格式的可以调用 json()方法
import requests
r = requests.get("https://www.lagou.com/lbs/getAllCitySearchLabels.json")
print(r.json())
print(type(r.json()))
添加headers 请求头
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
r = requests.get("https://www.baidu.com",headers=headers)
print(r.text)
抓取二进制文件
import requests
r = requests.get("https://github.com/favicon.ico")
print(r.text)
print(r.content)
with open('1.ico','wb') as f:
f.write(r.content)
post 请求
import requests
data = {'name': 'test', 'age': '21','sex':'男'}
r = requests.post("http://httpbin.org/post", data=data)
print(r.text)
响应
import requests
r = requests.get('http://www.baidu.com')
# 状态码
print(type(r.status_code), r.status_code)
# 响应头
print(type(r.headers), r.headers)
# Cookies
print(type(r.cookies), r.cookies)
# 请求 url
print(type(r.url), r.url)
# 请求历史
print(type(r.history), r.history)
判断请求是否成功
import requests
r = requests.get('http://www.baidu.com')
# requests.codes.ok得到的是成功的状态码200
exit() if not r.status_code == requests.codes.ok else print('Request Successfully')
高级
文件上传
import requests
files = {'file': open('1.ico', 'rb')}
r = requests.post("http://httpbin.org/post", files=files)
print(r.text)
cookie 模拟登录
import requests
url = 'https://weibo.com/u/6539720569/home?topnav=1&wvr=6&pids=plc_main&ajaxpagelet=1&ajaxpagelet_v6=1&__ref=%2Fu%2F6539720569%2Fhome%3Ftopnav%3D1%26wvr%3D6&_t=FM_1542900004053124'
h = {
'Host': 'weibo.com',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
# 'Referer': 'https://weibo.com/u/6539720569?is_all=1',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh,zh-CN;q=0.9,en;q=0.8',
'Cookie': 'SINAGLOBAL=94993410627.1666.1520769274152; _s_tentry=cuiqingcai.com; Apache=5017072227083.262.1542629483779; ULV=1542629483995:36:4:1:5017072227083.262.1542629483779:1542205550567; YF-Page-G0=e44a6a701dd9c412116754ca0e3c82c3; login_sid_t=1a7ba97fe27f566ce119097abd18c565; cross_origin_proto=SSL; Ugrow-G0=56862bac2f6bf97368b95873bc687eef; TC-V5-G0=ac3bb62966dad84dafa780689a4f7fc3; wb_view_log=1920*10801; WBtopGlobal_register_version=18608f873d5d88f2; appkey=; TC-Page-G0=9183dd4bc08eff0c7e422b0d2f4eeaec; wb_view_log_6539720569=1920*10801; un=*******; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WWEa9ykHUXNGmUlEp4N8evQ5JpX5K2hUgL.Foqfe0.Neo5fSo.2dJLoI7LsUgSuPfxLMNBt; ALF=1574412019; SSOLoginState=1542876019; SCF=AnI7F2A3uDMtu9SYi3j9FdPQsitEYhJntfyXE0_5tz7YOAwXZ7AwlRXenxkj7aWPri2XdxCDtCa9bY0i9InJHI0.; SUB=_2A2528hsjDeRhGeBL6FsW8i7JzTWIHXVVhgvrrDV8PUNbmtAKLWzZkW9NRwIFFJ3DRFJNQh-yiz7GUXwmJX5WcXuB; SUHB=0k1CqncARZEaj7; wvr=6; UOR=,,www.baidu.com',
}
r = requests.get(url,headers=h,verify=False)
print(r.text)
SSL证书验证verfiy参数改为False
import requests
url = 'https://weibo.com'
r = requests.get(url,verify=False)
print(r.text)
会话维持 session
import requests
s = requests.Session()
s.get('http://httpbin.org/cookies/set/number/123456789')
r = s.get('http://httpbin.org/cookies')
print(r.text)
代理设置
import requests
proxies = {
"http": "http://112.240.176.185:4213",
"https": "http://112.240.176.185:4213",
}
requests.get("https://www.taobao.com", proxies=proxies)
超时设置 timeout
import requests
r = requests.get("https://www.taobao.com", timeout=0.1,verify=False)
print(r.status_code)