python 构造http请求对象-Request对象
利用urlopen( )方法可以实现最基本请求的发起,如果请求中需要加入Headers等信息,就可以利用request模块下的Request类构造http请求对象。其构造方法如下:
class urllib.request.Request(url, data=None, headers={ }, origin_req_host=None,unverifiable=False, method=None)
第一个参数url用于请求URL,这是必传参数,其他都是可选参数。
第二个参数data如果要传,必须传bytes(字节流)类型的。如果它是字典,可以先用urllib.parse模块里的urlencode( )编码。
第三个参数headers是一个字典,它就是请求头,我们可以在构造请求时通过headers参数直接构造,也可以通过调用请求示例的add_header( )方法添加。添加请求头最常用的用法就是通过修改User-Agent来伪装浏览器。比如要伪装火狐浏览器,我们可以把它设置为:
Mozilla/5.0(X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11
第四个参数origin_req_host指的是请求方的host名称或者IP地址。
第五个参数unverifiable表示这个请求是无法验证的,默认是False,意思就是说用户没有足够的权限来选择接收这个请求的结果。例如,我们请求一个HTML文档中的图片,但是我们没有自动抓取图像的权限,这时unverifiable的值就是True。
第六个参数method是一个字符串,用来指示请求使用的方法,比如GET、POST和PUT等。
from urllib import request
req=request.Request('http://www.douban.com/')#构造Request 对象,只传入url参数
req.add_header('User-Agent','Mozilla/6.0(iPhone;CPU iPhone OS 8_0 like Mac OS X) AppleWebkit/536.26 (KHTML,like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
with request.urlopen(req) as f:print('Status:',f.status,f.reason)for k,v in f.getheaders():print('%s:%s'%(k,v))print('Data:',f.read().decode('utf-8'))
参考资料:
Request对象详细构造方法:https://baijiahao.baidu.com/s?id=1624323173955549442&wfr=spider&for=pc
python 构造http请求对象-Request对象相关推荐
- python arp_用Python构造ARP请求、扫描、欺骗
0. ARP介绍 首先,先回忆下TCP/IP模型,从下到上分为:数据链路层.网络层.传输层.应用层,那么ARP到底属于哪一层?有人会说是网络层,但实际是属于数据链路层,只不过还要为网络层提供服务. A ...
- jsp内置对象--request对象
request对象 客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应,他是HttpServletRequset类的实例request对象具有请求域,即完成客户的请求 ...
- python发post请求json_python request 以json形式发送post请求的正确的姿势
一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行,请求报头,消息主题. 以json串提交数据,编码格式: application/json, 必须加上 impor ...
- python构造http请求_Python实现简单的HTTP请求发送详解
代码如下 import socket def clean_host(host): """Remove leading http:// and trailing /path ...
- python 构造 whois 请求
whois报文请求 再也简单不过了: from socket import *HOST = '202.12.29.220' PORT = 43 BUFSIZ = 1024 ADDR = (HOST, ...
- Flask框架(flask中的request对象,获取请求参数,保存上传的文件)
1.request中包含了前端发送过来的所有数据 ,请求的 request 对象中保存了一次HTTP请求的一切信息. 通过request.from可以直接发送提取请求体中的表单格式数据,是一个类字典的 ...
- Javaweb-Servlet总结(概述、接口使用、配置、获取请求方式、路径操作、Request对象、Response对象)
文章目录 Servlet概述 Servlet核心接口和类 三种自定义Servlet接口的方法 1.实现Servlet接口 2.继承GenericServlet抽象类 3.继承HttpServlet抽象 ...
- Spring学习总结(28)——Spring获取request对象的几种方法及线程安全性总结
分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 前言 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用reque ...
- request 对象和 response 对象
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...
- rest post无法取到request_小白学Flask第五天 | 详解很重要的request对象
点击蓝色字关注我们! 一个正在努力变强的公众号 本文内容: request的form_data_args用法 上传文件 request的form.data.args用法 from flask impo ...
最新文章
- 《英语语法新思维初级教程》学习笔记(一)名词短语
- android SDK manager 无法获取更新版本列表
- CodedInputStream encountered an embedded string or message which claimed to have negative size.
- Android 数据库制作APP,在Android 中使用Anko框架制作一个完整的App,第二集
- 靠谱的div引入任何外链内容
- 馀承东发布鸿蒙,鸿蒙系统一无是处?鸿蒙有何优势?
- 操作系统之计算机系统概述:7、操作系统的体系结构
- java window的对象方法,[Java教程]如何真正重写window对象的方法_星空网
- api 二次 开发 禅道_VBA SolidWorks 二次开发 API ---从宏开始
- UVALive 3135--Argus+自己定义优先队列的优先规则
- TeamViewer 远程设备的画面黑屏怎么办?
- spark读取gz文件与parquet文件
- MapReducer随笔小记
- netstat 的详解
- python国际象棋的价值_python – 国际象棋negamax功能
- 魅族4usb计算机连接,魅族MX4手机如何连接电脑
- 方便的电商历史价格查询网站asd-price,只需三个字母
- win7电脑怎么伪装ip地址【系统天地】
- [ Laravel 5.5 文档 ] 快速入门 —— 使用 Laragon 在 Windows 中搭建 Laravel 开发环境
- HDUOJ 6441 Find Integer
热门文章
- Fragment中获取Activity的Context
- 对代码更有信心--单元测试工具Mockito简单介绍
- 大华管理平台用户名_助力制造苏州紫光云引擎携手大华精密,共建精密机加数字化样板工厂...
- phpstorm配置ftp,自动更新代码
- wordpress无法上传中文名的图片
- Linux报文硬件时间戳,linux 时间戳,打戳代码分析,用于PTP报文协议(示例代码)...
- 小米6 twrp_小米手机刷国际版欧版 MIUI 的详细教程
- win7副本不是正版_征途正版官网版下载-征途正版手游官网版下载1.0
- 单元覆盖测试排除某些类烧苗_汽车嵌入式软件测试——嵌入式软件测试概述
- 省赛第七场(fzu1881 ~fzu1889)