使用requests,它的七个主要方法,在这里只讲两个:get、post

>>> import requests

>>> r=requests.get("http://www.baidu.com")

>>> r.status_code 200

>>> r.encoding 'ISO-8859-1'

>>> r.apparent_encoding 'utf-8'

>>> r.text  # 发现编码不行,改编码

>>> r.encoding='utf-8'

注意requests库有时会产生异常,比如网络连接错误、http错误异常、重定向异常、请求url超时异常等等。所以我们需要判断r.status_codes是否是200。

我们可以利用r.raise_for_status()语句去捕捉异常,该语句在方法内部判断r.status_code是否等于200,如果不等于,则抛出异常。

一个爬取网页的通用代码框架:

try:

  r=requests.get(url,timeout=30)#请求超时时间为30秒

  r.raise_for_status()#如果状态不是200,则引发异常

  r.encoding=r.apparent_encoding #配置编码

  return r.text

except:

  return"产生异常"

params = {'k1':'v1','k2':'v2'}         

r = requests.post('http://192.168.165.4:8000/show/testreport/',data=params)        

在服务器端用request.POST.get("data")什么也获取不到,用request.body获取到的是b'k2=v2&k1=v1'

但这样的格式怎么也转不成字典,        

r = requests.post('http://192.168.165.4:8000/show/testreport/',json=params)        

用request.body获取到b'{"k2": "v2", "k1": "v1"}',其实我想说的是:

在客户端产生了一个字典,由于需要加密,所以成了这样的数据:b'qwrasdfsdfsfa',怎么发呢?

直接发就行:

a = b'qwrasdfsdfsfa'

r = requests.post('http://192.168.165.4:8000/show/testreport/',data=a)

然后在服务器端用request.body()获取数据然后解密就行。

python3-requests详解:https://www.cnblogs.com/ranxf/p/7808537.html

python3:requests模块-写了一点的更多相关文章

  1. python3: requests模块的使用;

    requests库常用于http请求,可以很方便对网页进行爬取: 主要方法(七个): 方法 解释 requests.request() 构造一个请求,支持以下各种方法 requests.get() 获 ...

  2. python3 requests模块

    一.Requests用法: 1.发送请求: 1).请求类型:req_obj = requests.get("https://www.baidu.com")requests支持多种请 ...

  3. python3 requests模块 基本操作

    import requests import json # 1.HTTP方法 requests.get('https://github.com/timeline.json') #GET请求 reque ...

  4. python3 requests 模块 json参数和data参数区别

    json 表示使用application/json方式提交请求 data 使用application/form-urlencode方式提交请求

  5. [实战演练]python3使用requests模块爬取页面内容

    本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...

  6. python3使用requests模块完成get/post/代理/自定义header/自定义Cookie

    一.背景说明 http请求的难易对一门语言来说是很重要的而且是越来越重要,但对于python一是urllib一些写法不太符合人的思维习惯文档也相当难看,二是在python2.x和python3.x中写 ...

  7. Python3:Requests模块的异常值处理

    Python3:Requests模块的异常值处理 用Python的requests模块进行爬虫时,一个简单高效的模块就是requests模块,利用get()或者post()函数,发送请求. 但是在真正 ...

  8. (转)Python3之requests模块

    原文:https://www.cnblogs.com/wang-yc/p/5623711.html Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另 ...

  9. Python3之requests模块

    Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 发送G ...

随机推荐

  1. 微软与百度合作:win10搜索引擎默认百度

    全球最大的中文搜索引擎百度公司与微软公司共同宣布双方展开战略合作.百度并将成为中国市场上Windows 10 Microsoft Edge浏览器的默认主页和搜索引擎.也就是说,将来人们在win10的M ...

  2. 正则表达式 去除所有非ASCII字符

    需求: 去除字符串中包含的所有外国字符 只能使用正则如下,找到包含非ASCII的记录 db=# select * from test where info ~ '[^(\x00-\x7f)]'; id ...

  3. BIT+DP

    2018CCPC网络赛 J - YJJ's Salesman HDU - 6447 YJJ is a salesman who has traveled through western country ...

  4. 九度oj 题目1007:奥运排序问题

    九度oj 题目1007:奥运排序问题   恢复 题目描述: 按要求,给国家进行排名. 输入:                        有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...

  5. 【bzoj4568】[Scoi2016]幸运数字 树上倍增+高斯消元动态维护线性基

    题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一些旅行者希望游 ...

  6. 【Luogu】P3787冰精冻西瓜(线段树)

    题目链接 我脑子怕不是有坑qwqqq 用前缀和思想,dis[i]表示i离根的距离,那么修改操作其实是对x的子树区间加y/dis[x],查询的时候*dis[to]即可. 对付/0错的思路是建森林,然而这 ...

  7. HDU-3592 World Exhibition

    差分约束. 很容易看出两种约束方式,然后建图.而且题目要求排序不能乱,于是加上第三种约束. 求最长就跑一遍最短路啊就行了. #include <cstdlib> #include < ...

  8. dom方法insertAfter的实现

    在dom的原生api中,只用insertBefore,没有insertAfter,借助原有的api,可以模拟一个insterAfter. function insterAfter(newElement ...

  9. iOS-ASIHTTPRequest缓存机制

    第三方网络请求库 * 我们在对网络请求的时候,可以使用系统为我们提供的NSURLRequest和NSURLConnection,它基本能实现我们的基本功能. * 但是有时我们使用第三方封装的库,可以轻 ...

  10. Failed to apply plugin [id 'com.gradle.build-scan']

    把spring源码clone下来之后,使用gradle编译不通过,异常日志如下: FAILURE: Build failed with an exception. * Where: Build fil ...