python实现http get请求
- 接口请求方式为get请求,如下图抓包查看

- Python实现脚本请求接口并以中文打印接口返回的数据
import urllib.parse
import urllib.request url = "https://..../manage/region/list" # 定义请求数据,并且对数据进行赋值
values={}
values['status']= 'hq'
values['token']= 'C6AD7DAA24BAA29AE14465DDC0E48ED9' # 对请求数据进行编码
data = urllib.parse.urlencode(values).encode('utf-8')
print(type(data)) # 打印<class 'bytes'>
print(data) # 打印b'status=hq&token=C6AD7DAA24BAA29AE14465DDC0E48ED9' # 若为post请求以下方式会报错TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.
# Post的数据必须是bytes或者iterable of bytes,不能是str,如果是str需要进行encode()编码
data = urllib.parse.urlencode(values)
print(type(data)) # 打印<class 'str'>
print(data) # 打印status=hq&token=C6AD7DAA24BAA29AE14465DDC0E48ED9 # 将数据与url进行拼接
req = url + '?' + data
# 打开请求,获取对象
response = urllib.request.urlopen(req)
print(type(response)) # 打印<class 'http.client.HTTPResponse'>
# 打印Http状态码
print(response.status) # 打印200
# 读取服务器返回的数据,对HTTPResponse类型数据进行读取操作
the_page = response.read()
# 中文编码格式打印数据
print(the_page.decode("unicode_escape"))
- 执行脚本,接口返回数据

- 使用到的函数
urllib.parse.urlencode() 把key-value这样的键值对转换成a=1&b=2这样的字符串
urllib.request.urlopen() 打开指定的url,就是进行get请求
response.read() 读取HTTPResponse类型数据
- 脚本执行过程报错记录,requests爬虫时开启代理会报以下错误
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.****.cn', port=443):Max retries exceeded with url: //manage/region/list (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))
python实现http get请求的更多相关文章
- python 3 处理HTTP 请求的包
http http: https://docs.python.org/3/library/http.html http是一个包,里面含有多个模块:http.client,http.server,htt ...
- python CSRF跨站请求伪造
python CSRF跨站请求伪造 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- python发送HTTP POST请求
1. 127.0.0.1和0.0.0.0 127.0.0.1是一个回送地址,指本地机,一般用来本机测试使用,使用127.0.0.1启的服务只能在本地机器上访问,使用0.0.0.0启的服务可以在其他机器 ...
- Python爬虫--- 1.1请求库的安装与使用
来说先说爬虫的原理:爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来.这个时候就要用到请 ...
- Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据
Python+requests 发送简单请求-->获取响应状态-->获取请求响应数据 1.环境:安装了Python和vscode编译器(Python自带的编译器也ok).fiddler抓包 ...
- Python +requests 关于post请求返回报错
python+request 发送post请求:msg返回"Content type 'application/octet-stream' not supported" 一.问题源 ...
- python——django的post请求
两次被同一块石头绊倒简直不可原谅!第一次写django程序的时候,就因为ajax post请求折腾了整整一天,时隔两个多月昨天又被虐一整晚.叔可忍婶儿也不能忍了!!!重要的事情写下来,为以后轻松碾压p ...
- python 模拟登陆,请求包含cookie信息
需求: 1.通过GET方法,访问URL地址一,传入cookie参数 2.根据地址一返回的uuid,通过POST方法,传入cooki参数 实现思路: 1.理解http的GET和POST差别 (网上有很多 ...
- Python socket模拟HTTP请求
0x00 起 最近在做一个对时间要求比较高的扫描器,需要封装一下SOCKET模拟HTTP发包的一些常用函数.简单的说,就是重写一下requests中的get.post方法. 今天在写的时候,遇到一枚很 ...
- python 2 处理HTTP 请求的包
httplib httplib: https://docs.python.org/2/library/httplib.html python 的官方文档这样说明: This module define ...
随机推荐
- Xcode工程编译错误之iOS开发之Xcode9报错 Compiling IB documents for earlier than iOS7 is no longer supported.
概要: 在我们升级到Xcode9时,最低的编译版本为iOS8,但是在使用一些SDK的时候就会报出Compiling IB documents for earlier than iOS7 is no l ...
- Scaled Exponential Linear Unit
https://www.bilibili.com/video/av9770302/?p=11 Relu Leaky Relu Parametric Relu就是把leaky部分的斜率学出来,而不是指定 ...
- 常用类枚举和DATE的介绍
1 常用类 日期时间类 时间戳的内容:就是距离特定时间的时间间隔.,本质上也是一种整形(long). 例如:计算机时间戳就是距离历元(1970-01-01 00:00:00:000)的时间间隔. 世界 ...
- 13.0-uC/OS-III上下文切换
1.当uC/OS-III转向执行另一个任务的时候,它保存了当前任务的CPU寄存器到堆栈.并从新任务的的堆栈中CPU寄存器载入CPU.这个过程叫做上下文切换. 上下文切换需要一些开支. CPU的寄存器越 ...
- 接口测试工具-Jmeter使用笔记(六:从文本读取参数)
使用场景:测试一个接口并发处理数据的能力,并且每次请求传入的参数都要不同. 解决方法--- CSV Data Set Config 列举一个实例,步骤中会侧重读取参数操作的说明,其他有疑问的步骤请查阅 ...
- xshell 6评估已过期解决办法 / xftp 6 评估已过期解决办法
1.工具用途介绍 Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.Xshell 通过互联网到远程主机的安全 ...
- JAVA设计模式之静态代理
首先看看什么是代理模式. 一 代理模式 使用一个代理对象将对象包装起来,然后用该代理对象来取代该对象,任何对原始对象的调用都要通过代理,代理对象决定是否以及何时调用原始对象的方法 二 静态模式 要求被 ...
- vue中使用scss
之前项目里我一般是使用less的,朋友问到如何引入scss,于是我就简单的跑了一下,以下主要供自己学习,如有更好的方法可以一起交流讨论一下 第一步,安装依赖 cnpm install node-sas ...
- PowerDesigner导出pdm设计为Word文档
点击Report->Reports 点击New Report 选择Standard Physical Report,语言选择简体中文,如下图 此时目录下就会多一个Report 右窗口: 根据自己 ...
- 彻底解决(Microsoft Visual C++ 14.0 is required)的步骤123
之前要用协程gevent,安装pip install gevent包时遇到Microsoft Visual C++ 14.0 is required的报错提示,各种下载没有解决很头疼, 前两天安装sc ...