requests库之自定义request

阅读requests源码会有更清楚的理解。

tcp/ip的三次握手,使用requests每次请求会占用更多资源,使用session则可以重复使用一个request。

自定义requests:首先定义session(proxy,timeout,verify……),定义request(body,headers,author……)然后用prepare方法进行包装,最后用session使用send方法发出请求。

实例:

import json
import requests
from requests import exceptions

URL = ‘https://api.github.com‘

#构建uri
def build_uri(endpoint):
    return ‘/‘.join([URL,endpoint])

def hard_request():
    from requests import Request,Session
    #定义session
    s = Session()
    headers = {‘User-Agent‘:‘fake1.2.3‘}

    #定义request并进行包装
    req = Request(‘Get‘,build_uri(‘user/emails‘),auth=(‘imoocdemo‘,‘imoocdemo123‘),
        headers = headers)
    preped = req.prepare()
    print (preped.body)
    print (preped.headers)

    #使用session进行请求
    resp = s.send(preped,timeout=5)
    print(resp.status_code)
    print(resp.request.headers)
    print(resp.text)

if __name__==‘__main__‘:
    hard_request()
时间: 2024-10-03 21:33:32

requests库之自定义request的相关文章

大概看了一天python request源码。写下python requests库发送 get,post请求大概过程。

python requests库发送请求时,比如get请求,大概过程. 一.发起get请求过程:调用requests.get(url,**kwargs)-->request('get', url, **kwargs)-->session.request(method="get", url=url, **kwargs)-->session.send(request, **kwargs)-->adapter.send(request, **kwargs)-->

python requests库学习笔记(下)

1.请求异常处理 请求异常类型: 请求超时处理(timeout): 实现代码: import requestsfrom requests import exceptions        #引入exceptions A:请求超时 def timeout_request():    try:        response = requests.get(build_uri('user/emails'), timeout=0.1)    except exceptions.Timeout as e:

爬虫requests库的方法与参数

爬虫requests库的方法与参数 import requests """ # 1. 方法 requests.get requests.post requests.put requests.delete ... requests.request(method='POST') """ # 2. 参数 """ 2.1 url 2.2 headers 2.3 cookies 2.4 params 2.5 data,传请求体

requests库详解 --Python3

本文介绍了requests库的基本使用,希望对大家有所帮助. requests库官方文档:https://2.python-requests.org/en/master/ 一.请求: 1.GET请求 coding:utf8 import requests response = requests.get('http://www.httpbin.org/get') print(response.text) 2.POST请求 # coding:utf8 import requests data = {

从0开始学爬虫10之urllib和requests库与github/api的交互

urllib库的使用 # coding=utf-8 import urllib2 import urllib # htpbin模拟的环境 URL_IP="http://10.11.0.215:8080" URL_GET = "http://10.11.0.215:8080/get" def use_simple_urllib2(): response = urllib2.urlopen(URL_IP) print '>>>> Response

Python爬虫(二):Requests库

所谓爬虫就是模拟客户端发送网络请求,获取网络响应,并按照一定的规则解析获取的数据并保存的程序.要说 Python 的爬虫必然绕不过 Requests 库. 1 简介 对于 Requests 库,官方文档是这么说的: Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档症.抑郁.头疼.甚至死亡. 这个介绍还是比较生动形象的,便不再多说.安装使用终端命令 pi

requests库的基础使用

1.requests简介 Requests是一个优雅而简单的Python HTTP库,专为人类而构建,requests的使用方式非常的简单.直观.人性化,让程序员的精力完全从库的使用中解放出来. Requests的官方文档同样也非常的完善详尽,而且少见的有中文官方文档:http://cn.python-requests.org/zh_CN/latest/. 英文文档:http://docs.python-requests.org/en/master/api/ 首先打开requests库的源码 d

请求库之requests库

目录 介绍 基于GET请求 1.基本请求 2.带参数的GET请求->params 带参数的GET请求->headers 带参数的GET请求->cookie 基于POST请求 1.介绍 2.发送post请求,模拟浏览器的登录行为 requests.session()自动帮我们保存cookie信息 补充 响应response respone属性 获取二进制数据 爬取大文件 解析json数据 SSL Cert Verification 使用代理 超时设置 异常处理 上传文件 介绍 #介绍:使用

第二周_自动化接口测试:requests库使用

目录: 一. 第一周_接口手工测试:网络基础知识.抓包.Postman回顾,Pycharm安装教程和问题 二. Requests库介绍 三. 请求发送 四. 响应解析 五. 参数化 六. 断言 七. 其他(认证/关联/异步接口) 一.第一周_接口手工测试:网络基础知识.抓包.Postman回顾 Pycharm安装教程和问题 Pycharm安装教程 安装:https://www.cnblogs.com/QYGQH/p/7569769.html 第一步:打开界面 第二步:选择代码路径和Python解