python之requests 乱七八糟

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)]) )

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())

优先级由高到低: 传参 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/‘)

时间: 2024-10-08 10:53:37

python之requests 乱七八糟的相关文章

49.Python使用requests包进行HTTP交互方法详解

简介 使用方法 传递QUERY参数 定制请求头 填写cookie 填充请求体 处理响应对象 重定向与访问历史 超时 Session对象 根据响应获取请求 SSL认证 HTTP认证 基本认证 摘要认证 代理场景 HTTPHTTPS代理 SOCKS代理 简介 Python的HTTP包有urllib.urllib2.httplib等,但是都需要了解较多的HTTP原理才能编码,借助requests包可以在较高的抽象层次上完成HTTP交互过程的开发.安装requests使用pip install requ

Python 爬虫—— requests BeautifulSoup

本文记录下用来爬虫主要使用的两个库.第一个是requests,用这个库能很方便的下载网页,不用标准库里面各种urllib:第二个BeautifulSoup用来解析网页,不然自己用正则的话很烦. requests使用,1直接使用库内提供的get.post等函数,在比简单的情况下使用,2利用session,session能保存cookiees信息,方便的自定义request header,可以进行登陆操作. BeautifulSoup使用,先将requests得到的html生成BeautifulSo

python用requests和urllib2两种方式调用图灵机器人接口

最近从网上看见个有意思的图灵机器人,可以根据不同的信息智能回复,比如你发送一个"讲个笑话",它就会给你回复一个笑话,或者"北京天气"就可以回复天气情况,或者英文单词然后给你回复中文释义.官方文档中有php和java的调用方式,我就弄个python的吧. 注册获取API KEY 这一步很简单,直接注册一个账号就可以看到你的API KEY.这个KEY我们以后发送get请求的时候需要用到. Pythoh调用示例 掉用也比较简单,主要是模拟post 请求.然后解析 json

Python——安装requests第三方库

一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟官方文档都很直白的说: python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码. 所以,使用requests方便的多. 二.下载安装 注:没有配置好Python开发环境的同学可以先戳配置Python开发环境 1.首先去这里requests

让http服务人类(python之requests做接口测试)

让http服务人类 最优雅的http请求库(python的http请求库有很多,比如urllib2,urllib3,httplib). requests库简介 requests库是基于urllib3库封装的第三方http请求库,在python中requests应用最广泛的应该属网络爬虫方面,对于测试来说,我们对于requests的应用主要是接口测试方面. 实例(1)创建一个请求: httpbin:这个网站专门是为了给http做测试用的. import requests #导入requests模块

Python使用requests時遇到Failed to establish a new connection

再寫Zeppelin的CLI工具的時候https://github.com/del680202/zdairi 遇到了開起太多connection這樣一個錯誤 requests.exceptions.ConnectionError: HTTPConnectionPool(host='xxxxx', port=xxxxx): Max retries exceeded with url: /api/notebook/2BG5CTGN7/paragraph/20160407-173136_8279522

解决python爬虫requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题

爬虫时报错如下: requests.exceptions.SSLError: HTTPSConnectionPool(host='某某某网站', port=443): Max retries exceeded with url: /login/ (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify fail

python之requests库使用

requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 “HTTP for Humans”,说明使用更简洁方便. 安装和文档地址: 利用pip可以非常方便的安装: pip install requests 中文文档:http://docs.python-requests.org/zh_CN/latest/index.htmlgithub地址:https://github.com/re

python之requests模块-cookie

cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在python之requests模块-session中,我们知道了requests中的session对象能够在请求之间保持cookie,它极大地方便了我们去使用cookie.当我们想设置方法级别中的请求时,可以如下面示例一样操作. import requests s = requests.session(