笔记-requests详解(二)
2018-03-17 14:02
232 查看
实例引入import requests
response = requests.get('https://www.baidu.com/')
print(type(response))
print(response.status_code)
print(type(response.text))
print(response.text)
print(response.cookies)
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')
response = requests.get("http://httpbin.org/get?name=germey&age=22")
print(response.text)
import json
response = requests.get("http://httpbin.org/get")
print(type(response.text))
print(response.json())
print(json.loads(response.text))
print(type(response.json()))
response = requests.get("https://github.com/favicon.ico")
print(type(response.text), type(response.content))
print(response.text)
print(response.content)
response = requests.get("https://www.zhihu.com/explore")
print(response.text)
data = {'name': 'germey', 'age': '22'}
response = requests.post("http://httpbin.org/post", data=data)
print(response.text)
response = requests.get("https://www.baidu.com")
print(response.cookies)
for key, value in response.cookies.items():
print(key + '=' + value)
response = requests.get('https://www.12306.cn')
print(response.status_code)
response = requests.get('https://www.baidu.com/')
print(type(response))
print(response.status_code)
print(type(response.text))
print(response.text)
print(response.cookies)
各种请求方式
import requestsrequests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')
请求
基本GET请求
基本写法
import requests response = requests.get('http://httpbin.org/get') print(response.text)
带参数GET请求
import requestsresponse = 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
import requestsimport json
response = requests.get("http://httpbin.org/get")
print(type(response.text))
print(response.json())
print(json.loads(response.text))
print(type(response.json()))
获取二进制数据
import requestsresponse = requests.get("https://github.com/favicon.ico")
print(type(response.text), type(response.content))
print(response.text)
print(response.content)
import requests response = requests.get("https://github.com/favicon.ico") with open('favicon.ico', 'wb') as f: f.write(response.content) f.close()
添加headers
import requestsresponse = requests.get("https://www.zhihu.com/explore")
print(response.text)
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' } response = requests.get("https://www.zhihu.com/explore", headers=headers) print(response.text)
基本POST请求
import requestsdata = {'name': 'germey', 'age': '22'}
response = requests.post("http://httpbin.org/post", data=data)
print(response.text)
import requests data = {'name': 'germey', 'age': '22'} 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' } response = requests.post("http://httpbin.org/post", data=data, headers=headers) print(response.json())
响应
reponse属性
import requests response = requests.get('http://www.jianshu.com') print(type(response.status_code), response.status_code) print(type(response.headers), response.headers) print(type(response.cookies), response.cookies) print(type(response.url), response.url) print(type(response.history), response.history)
import requests response = requests.get('http://www.jianshu.com/hello.html') exit() if not response.status_code == requests.codes.not_found else print('404 Not Found')
import requests response = requests.get('http://www.jianshu.com') exit() if not response.status_code == 200 else print('Request Successfully')
高级操作
文件上传
import requests files = {'file': open('favicon.ico', 'rb')} response = requests.post("http://httpbin.org/post", files=files) print(response.text)
获取cookie
import requestsresponse = requests.get("https://www.baidu.com")
print(response.cookies)
for key, value in response.cookies.items():
print(key + '=' + value)
会话维持
模拟登录import requests requests.get('http://httpbin.org/cookies/set/number/123456789') response = requests.get('http://httpbin.org/cookies') print(response.text)
import requests s = requests.Session() s.get('http://httpbin.org/cookies/set/number/123456789') response = s.get('http://httpbin.org/cookies') print(response.text)
import requests s = requests.session() data = {'form_email':'账户','form_password':'密码'} #post 换成登录的地址, s.post('https://www.douban.com/accounts/login',data) #换成抓取的地址 response=s.get('https://movie.douban.com/top250') print(response.text)#显示以下信息,说明已登陆成功
证书验证
import requestsresponse = requests.get('https://www.12306.cn')
print(response.status_code)
import requests from requests.packages import urllib3 urllib3.disable_warnings() response = requests.get('https://www.12306.cn', verify=False) print(response.status_code)
import requests response = requests.get('https://www.12306.cn', cert=('/path/server.crt', '/path/key')) print(response.status_code)
代理设置
import requests proxies = { "http": "http://127.0.0.1:9743", "https": "https://127.0.0.1:9743", } response = requests.get("https://www.taobao.com", proxies=proxies) print(response.status_code)
import requests proxies = { "http": "http://user:password@127.0.0.1:9743/", } response = requests.get("https://www.taobao.com", proxies=proxies) print(response.status_code)
pip3 install 'requests[socks]'
超时设置
import requests from requests.exceptions import ReadTimeout try: response = requests.get("http://httpbin.org/get", timeout = 0.5) print(response.status_code) except ReadTimeout: print('Timeout')
认证设置
import requests from requests.auth import HTTPBasicAuth r = requests.get('http://120.27.34.24:9001', auth=HTTPBasicAuth('user', '123')) print(r.status_code)
import requests r = requests.get('http://120.27.34.24:9001', auth=('user', '123')) print(r.status_code)
异常处理
import requests from requests.exceptions import ReadTimeout, ConnectionError, RequestException try: response = requests.get("http://httpbin.org/get", timeout = 0.5) print(response.status_code) except ReadTimeout: print('Timeout') except ConnectionError: print('Connection error') except RequestException: print('Error')
相关文章推荐
- Linux C笔记之 变量存储类型 详解
- Python-第三方库requests详解
- 读 给 Android 开发者的 RxJava 详解 笔记
- J2EE系列之Spring4学习笔记(六)--IOC详解(bean之间的关系,bean的作用范围)
- html css学习笔记-详解各种选择器
- NET笔记——IOC详解和Unity基础使用介绍
- lwip学习笔记之几个重要的数据结构详解
- Python Requests 学习笔记
- 《JavaScript高级程序设计 第三版》学习笔记 (七) 内存泄漏详解
- 定位详解、层级、滤镜遮罩笔记
- JS笔记-关于Date()类的用法详解
- TCP/IP协议详解卷1学习笔记_TCP协议
- Java多线程设计模式详解学习笔记三——SingleThreadExecution
- hadoop 学习笔记:mapreduce框架详解
- PHP+MySQL开发技术详解—学习笔记
- JavaScript学习笔记-实例详解-类(二)
- 《JavaScript高级程序设计 第三版》学习笔记 (九)BOM详解
- MySQL笔记之基本查询的应用详解
- ArcGIS API for javascript开发笔记(五)——GP服务调用之GP模型的发布及使用详解