python-requests库使用

###

http的8种请求方式:get,post,put,delete,option,trace,connect,head,

主要就是get和post,

### 

request源码分析

# requests源码解析,

import requests
requests.get(url,)

# 里面除了url参数还有什么参数?
#看源码,这个get请求是取调用了request,
def get(url, params=None, **kwargs):
    kwargs.setdefault('allow_redirects', True)
    return request('get', url, params=params, **kwargs)

# 然后request最后是返回了session.request()
def request(method, url, **kwargs):
    with sessions.Session() as session:
        return session.request(method=method, url=url, **kwargs)

# 而session.request()里面有很多的参数,
def request(self, method, url,
            params=None, data=None, headers=None, cookies=None, files=None,
            auth=None, timeout=None, allow_redirects=True, proxies=None,
            hooks=None, stream=None, verify=None, cert=None, json=None): XXX

# 参数解释
# data 这是携带请求体里面的数据,字典格式,    
# headers 这是携带请求头,字典格式,
# cookies 这是携带请求的cookies信息,字典格式,
# proxies 这个是使用代理,也是字典格式,
# verify 如果是https请求,把这个=FALSE,就是不校验证书,

###

分析response响应数据

import requests

res = requests.get(url)

print(dir(res))

#通过这个dir查看一下这个返回值,有什么方法?
[ 'apparent_encoding', 'close', 'connection', 'content', 'cookies', 'elapsed', 'encoding', 
'headers', 'history', 'is_permanent_redirect', 'is_redirect', 'iter_content', 'iter_lines', 'json',
'links', 'next', 'ok', 'raise_for_status', 'raw', 'reason', 'request', 'status_code', 'text', 'url'] #去掉双下划线的方法,解释一下这些方法, # content,返回一个二进制的响应内容, # cookies,打印出cookies信息, # encoding,打印出编码类型 # headers,打印出headers信息, # status_code,打印状态码 # text,打印出编码后的响应内容 # url,打印出本次请求的url,

### 

####

原文地址:https://www.cnblogs.com/andy0816/p/15150007.html