(1) urllib.request.urlopen()方法可以实现最基本请求的发起,但这几个简单的参数并不足以构建一个完整的请求
(2) 我们可以使用 urllib.request.Request() 先构造一个请求对象,这个请求对象可以包含请求头信息,或者包含要向服务器传递的数据,然后再发送请求
(3) 语法:urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False,method=None)
(4) 其中 url 是要请求的URL,这是必传参数,其他都是可选参数;data 是要向服务器传递的数据,headers 用来构造请求头信息,method 用来指定请求方法

import urllib.parse
import urllib.request url = "http://www.baidu.com/" headers = { //定义请求头信息,通常只定义 User-Agent,其他请求头信息可以通过 F12 界面查看
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
} postdata = { //定义要向服务器传递的数据
'wd': 'hello',
} data = bytes(urllib.parse.urlencode(postdata), encoding='utf8') //把要传递的数据转换成字节流编码格式
request = urllib.request.Request(url, data=data, headers=headers, method='POST') //构造一个请求对象,指定使用POST方式发起请求
response = urllib.request.urlopen(request) //最后再使用urlopen()发送请求对象
print(response.read().decode('utf-8'))

使用 urllib 构造请求对象的更多相关文章

  1. urllib基础-构造请求对象,设置用户代理User-Agent

    有的网页具有一些反爬机制,如:需要浏览器请求头中的User-Agent.User-Agent类似浏览器的身份证. 程序中不设置User-Agent.默认是Python-urllib/3.5.这样网站就 ...

  2. urllib基础-请求对象request

    简单的案例-爬取百度首页 from urllib import request ''' 爬取百度首页 ''' # 确定爬去目标 base_url = 'http://www.baidu.com' # ...

  3. spring MVC之构造ModelAndView对象

    spring MVC之构造ModelAndView对象 ---------- 构造ModelAndView对象 当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndV ...

  4. jquery 源码学习(四)构造jQuery对象-工具函数

    jQuery源码分析-03构造jQuery对象-工具函数,需要的朋友可以参考下.   作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 声明:本文为原 ...

  5. C#-WebForm-★内置对象简介★Request-获取请求对象、Response相应请求对象、Session全局变量(私有)、Cookie全局变量(私有)、Application全局公共变量、ViewState

    内置对象: 1.Request - 获取请求对象 用法:接收传值 protected void Page_Load(object sender, EventArgs e) { TextBox1.Tex ...

  6. 构造Json对象串工具类

    import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.Property ...

  7. jQuery.buildFragment源码分析以及在构造jQuery对象的作用

    这个方法在jQuery源码中比较靠后的位置出现,主要用于两处.1是构造jQuery对象的时候使用 2.是为DOM操作提供底层支持,这也就是为什么先学习它的原因.之前的随笔已经分析过jQuery的构造函 ...

  8. request请求对象实例

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DemoRequest.as ...

  9. Request To JavaBean(请求对象转换为JavaBean对象)

    背景: 经常要从request等对象取出值来赋入bean中,如果不用MVC框架的绑定功能的话,麻烦  一 参考资料 1 http://jc-dreaming.iteye.com/blog/563893 ...

随机推荐

  1. Linux中添加快捷

    执行操作比较快捷: 1.R3 CGP平台下OMU系统中: Linux 版本:2.6.16.60-0.21-bigsmp vi /etc/profile 2.R2 Linux版本2.6.5-7.244- ...

  2. 摄像头驱动0V7725学习笔记连载(三):0V7725 SCCB时序的实现

    上一篇博客主要是讲解了关于需要配置的重要寄存器,那么接下来就是要通过SCCB接口实现对OV7725的配置.参考<OmniVision Serial Camera Control Bus (SCC ...

  3. 2、TestNG+Maven+IDEA环境搭建

    前言: 主要进行TestNG测试环境的搭建 所需环境: 1.IDEA UItimate 2.JDK 3.Maven 一.创建工程 File –>new –>Project–>next ...

  4. 00-02.PHP 网站假设 之 学习PHP语法 [James建站]

    PHP 手册 Stig Sæther Bakken Alexander Aulbach Egon Schmid Jim Winstead Lars Torben Wilson Rasmus Lerdo ...

  5. C#提高-------------------Assembly和Module的使用-------反射内涵

    转 :C#反射技术概念作用和要点 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以 ...

  6. Linux Shell nohup命令用法

    linux的nohup命令的用法.   在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /us ...

  7. org.in2bits.MyXls.XlsDocument 生成excel文件 ; 如果想读取模板再另外生成的话,试试 NPOI

    优点:不依赖Microsoft组件,在内存中操作excel,读写速度快.   缺点:无法读取模板,只能生成新的excel (我亲自测试是在读取完模板后,不能保存,也不能另存,并且其他人说这个读取还会有 ...

  8. ggplot2 提取stat计算出来的数据

    使用ggplot2 绘图时,我们只需要提供原始数据就可以了,ggplot2 内置了许多的计算函数,来帮助我们计算对应的数值. 最典型的的,当使用geom_boxplot 绘制箱线图时,我们只提供原始数 ...

  9. Linux入门教程:如何检查Linux系统的最后重启时间

    问题: 是否有一个命令可以快速地检查系统已经运行了多久? 也就是我怎么知道Linux系统最后的重启时间? 有许多方法来查询系统最后的重启时间. 方法一 第一种方法是使用last命令. $ last r ...

  10. [mysql-Ver5.6.23] windows版my.ini配置

    基于utf8mb4比utf8多了种编码,能更好的支持emoji表情(http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.htm ...