python requests 基础资料
import requests
 response = requests.get('http://www.baidu.com')
 response.encoding='utf-8'
 print('状态码:',response.status_code)  # 打印状态码
 print('url:', response.url)          # 打印请求url
 print('header:',response.headers)      # 打印头信息
 print('cookie:',response.cookies)      # 打印cookie信息
 print('源码:',response.text)  #以文本形式打印网页源码
 print('字节流形式打印:',response.content) #以字节流形式打印
 ---------------------------------------------------------------
 带参数的GET请求:
 第一种直接将参数放在url内
 import requests
 response = requests.get(http://httpbin.org/get?name=psl&age=21)
 print(response.text)运行结果:
 {
   "args": {
     "age": "21", 
     "name": "psl"
   }, 
   "headers": {
     "Accept": "*/*", 
     "Accept-Encoding": "gzip, deflate", 
     "Host": "httpbin.org", 
     "User-Agent": "python-requests/2.18.4"
   }, 
   "origin": "59.51.114.216, 59.51.114.216", 
   "url": "https://httpbin.org/get?name=psl&age=21"
 }第二种
 import requestsdata = {
     'name': 'psl',
     'age': 21
 }response = requests.get('http://httpbin.org/get', params=data)
 print(response.text)----------------------------------------------------------------------------
 #为你的请求添加头信息
 import requests
 heads = {}
 heads['User-Agent'] = 'Mozilla/5.0 ' \
                           '(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \
                           '(KHTML, like Gecko) Version/5.1 Safari/534.50'
 response = requests.get('http://httpbin.org/get',headers=heads)
 print(response.text)运行结果:
 {
   "args": {}, 
   "headers": {
     "Accept": "*/*", 
     "Accept-Encoding": "gzip, deflate", 
     "Host": "httpbin.org", 
     "User-Agent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"
   }, 
   "origin": "59.51.114.203, 59.51.114.203", 
   "url": "https://httpbin.org/get"
 }
 ——————————————————————————————————————————
 #获取cookie
 import requestsresponse = requests.get('http://www.baidu.com')
 print(response.cookies)
 print(type(response.cookies))
 for k,v in response.cookies.items():
     print(k+':'+v)
 ——————————————————————————————————————————————
 #使用代理
 import requests
 proxies= {
 "http":"115.218.218.231:9000", 
 "http":"58.48.168.166:51430"
 }
 response = requests.get('http://httpbin.org/get',proxies=proxies)
 print(response.text)运行结果:{
   "args": {}, 
   "headers": {
     "Accept": "*/*", 
     "Accept-Encoding": "gzip, deflate", 
     "Host": "httpbin.org", 
     "User-Agent": "python-requests/2.18.4"
   }, 
   "origin": "58.48.168.166, 58.48.168.166", 
   "url": "https://httpbin.org/get"
 }
 ——————————————————————————————————————————————————
 异常处理在你不确定会发生什么错误时,尽量使用try...except来捕获异常
所有的requests exception:
 import requests
 from requests.exceptions import ReadTimeout,HTTPError,RequestExceptiontry:
     response = requests.get('http://www.baidu.com',timeout=0.5)
     print(response.status_code)
 except ReadTimeout:
     print('timeout')
 except HTTPError:
     print('httperror')
 except RequestException:
     print('reqerror')pip install requests 安装
Requests 的七个主要方法                        与 HTTP 对应方法
 requests.request():    构造一个请求 支撑以下各方法的基础方法
 requests.get():        获取HTML网页的主要方法                 GET
 requests.head():    获取HTML网页头信息的方法            HEAD
 requests.post():    向HTML网页提交post请求的方法            POST
 requests.put():    向HTML网页提交put请求的方法            PUT
 requests.patch():    向HTML网页提交局部修改请求的方法        PATCH
 requests.delete():    向HTML网页提交删除请求的方法            DELETErequests 库支持六种常见的连接异常
 requests.ConnectionError    网络连接错误异常,如 DNS 查询失败、拒绝连接等
 requests.HTTPError            HTTP 错误异常
 requests.URLRequired            URL 缺失异常
 requests.TooManyRedirects     超过最大重定向次数,产生重定向异常
 requests.ConnectTimeout            连接远程服务器超时异常
 requests.Timeout             请求 URL 超时,产生超时异常**kwargs: 13个控制访问的参数
 params:    字典或字节序列,作为参数增加到 url 中
 data:         字典、字节序列或文件对象,作为 Request 的内容
 timeout:    设定超时时间,秒为单位 如果设定时间内未返回,将产生一个 TimeoutError 异常
 json:        JSON 格式的数据,作为 Request 的内容
 proxies:     字典类型,设定访问代理服务器,可以增加登录认证
 header:     字典,可以用其来控制访问链接的 HTTP 头
 allow_redirects: 重定向开关,True/False,默认为True
 cookies:    字典或 CookieJar,Request 中的 cookie
 stream:        获取内容立即下载开关,默认为True
 auth:        元组,支持 HTTP 认证功能
 verify:        认证 SSL 证书开关,默认为True
 files:        字典类型,向服务器传输文件时使用的字段
 cert:        保存本地 SSL 证书路径的字段1.request() 方法
 request() 方法是所有方法的基础方法,其余的所有方法都是基于 request() 方法来封装的
 格式:requests.request(method, url, **kwargs)method : 请求方式,不同的方式对应不同的 HTTP 请求功能
 url : 拟获取页面的url链接
 **kwargs: 控制访问的参数,共13个r=r.request(GET,"http://www.baidu.com") 与 r=r.get("http://www.baidu.com") 等价
2.get()方法
 response = requests.get(url, params=None, **kwargs)
 url : 拟获取页面的url链接? params : url中的额外参数,字典或字节流格式,可选
 params参数是字典或字节序列,作为参数增加到url中**kwargs: 12个控制访问的参数
 response对象的属性属性    
 status_code    HTTP请求的返回状态
 text        HTTP响应内容的字符串形式,即:url对应的页面内容
 encoding    从HTTP header中猜测的响应内容编码方式
 apparent_encoding    从内容中分析出的响应内容编码方式(备选编码方式)
 content        HTTP响应内容的二进制形式encoding和apparent_encoding的区别 
 encoding:如果header中不存在charset,则认为编码为ISO-8859-1 
 apparent_encoding:根据网页内容分析出的编码方式 
 综上所述,apparent_encoding比encoding更为准确 3.head() 方法
1)作用:通过给定 url 来构造一个向 HTTP 请求资源的 Request 对象
2)返回值:返回一个包含 HTTP 资源的 Response 对象,其包含从 HTTP 返回的所有头部资源
3)格式:requests.head(url, **kwargs)
4.post() 方法
1)作用:向 url 提交新增数据,格式为字典,自动编码为 form(表单)
2)格式:requests.post(url, **kwargs)
5.put() 方法
1)作用:向 url 提交新增数据,格式为字符串,自动编码为 data
2)格式:requests.put(url,, **kwargs)
6.patch() 方法
1)作用:向 url 提交局部修改请求
2)格式:requests.patch(url,, **kwargs)
7.delete() 方法
1)作用:向 url 提交删除请求
2)格式:requests.delete(url, **kwargs)