1. 程式人生 > >python之requests 亂七八糟

python之requests 亂七八糟

.py lib lan adapt 5.0 tpc cond ins ica

1.預配置

技術分享
import requests
ss = requests.Session()
ss.headers.update({user-agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0})


# C:\Program Files\Anaconda2\lib\site-packages\urllib3\connectionpool.py:858: InsecureRequestWarning:
# Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: ht
# tps://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings ss.verify = False from urllib3.exceptions import InsecureRequestWarning from warnings import filterwarnings filterwarnings(ignore, category = InsecureRequestWarning) # http://docs.python-requests.org/zh_CN/latest/api.html import logging
try: from http.client import HTTPConnection except ImportError: from httplib import HTTPConnection HTTPConnection.debuglevel = 0 #關閉 0 開啟 1 logging.basicConfig() logging.getLogger().setLevel(logging.DEBUG) requests_log = logging.getLogger("requests.packages.urllib3") requests_log.setLevel(logging.DEBUG) requests_log.propagate
= True def s_hooks(r, *args, **kwargs): print(#*20) print(r.url, r.request.method, r.status_code, r.reason) print(request Content-Type: {} body: {}.format(r.request.headers.get(Content-Type), r.request.body)) print(response Content-Type: {} body length: {}.format(r.headers.get(Content-Type), len(r.content))) if json in r.headers.get(Content-Type, ‘‘).lower(): print(r.content) print(#*20) ss.hooks = dict(response=s_hooks) def httpbin(postfix=‘‘): return http://httpbin.org/ + postfix # r = ss.post(httpbin(‘post‘),json=dict([(‘a‘,1),(‘b‘,2)]) )
View Code

2.Content-Type

Sending JSON in Requests

技術分享
import requests
from pprint import pprint
ss = requests.Session()
ss.headers[Content-Type] = application/myjson
r = ss.post(https://httpbin.org/post, json={my: json}, headers={Content-Type:somejson})
pprint(r.json())
View Code

優先級由高到低: 傳參 headers={‘Content-Type‘:‘somejson‘} >>> ss.headers >>> 傳參 json= 自動生成的 u‘Content-Type‘: u‘application/json‘

3. Using Retries in requests

Retries in Requests

(1)簡單粗暴

s.mount(https://, HTTPAdapter(max_retries=5))

(2)更細粒度

技術分享
from requests.packages.urllib3.util import Retry
from requests.adapters import HTTPAdapter
from requests import Session

s = Session()
s.mount(https://pypi.python.org/, HTTPAdapter(
    max_retries=Retry(total=5, status_forcelist=[500, 503])
    )
)
r = s.get(https://pypi.python.org/simple/requests/)
View Code

python之requests 亂七八糟