urllib.request.urlopen(url, data=None, timeout=n) 用于发送HTTP请求并得到响应内容

In []: import urllib.request
In []: response = urllib.request.urlopen("http://www.baidu.com/") //发送GET请求
In []: response.read().decode('utf-8') //read()方法用于获取响应内容,readline(),readlines()也可以
In []: response.status //status属性用于获取响应状态码
In []: response.getcode() //getcode()方法用于获取响应状态码
In []: response.geturl() //geturl()方法用于获取请求的源地址
In []: response.getheaders() //getheaders()方法用于获取响应头信息
In []: response.getheader('Server') //getheader()方法用于获取指定的响应头信息

data 参数:

(1) 该参数是可选的,如果要添加,则必须通过 urllib.parse.urlencode() 转换成字节流编码格式
(2) 另外,如果传递了这个参数,则它的请求方式就不再是 GET 方式,而是 POST 方式,以下两种方式是一样的

import urllib.request
response = urllib.request.urlopen("http://www.baidu.com/s?wd=hello")
import urllib.parse
import urllib.request
data = bytes(urllib.parse.urlencode({'wd': 'hello'}), encoding='utf-8')
respose = urllib.request.urlopen("http://www.baidu.com/", data=data)

timeout 参数:

有时候我们访问一个网页,如果该网页长时间未响应,那么系统就会判断该网页超时了,即无法打开该网页,因此我们在打开一个URL时要根据自己的需要来设置超时时间

import urllib.request

try:
data = urllib.request.urlopen("http://www.baidu.com/", timeout=3).read()
except Exception as e:
print("请求超时!")

使用 urllib 发送请求的更多相关文章

  1. python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求

    urllib.urlopen(url[,data[,proxies]]) : https://docs.python.org/2/library/urllib.html python 中默认自带的网络 ...

  2. 爬虫模块介绍--request(发送请求模块)

    爬虫:可见即可爬   # 每个网站都有爬虫协议 基础爬虫需要使用到的三个模块 requests 模块  # 模拟发请求的模块 PS:python原来有两个模块urllib和urllib的升级urlli ...

  3. 使用 urllib 构造请求对象

    (1) urllib.request.urlopen()方法可以实现最基本请求的发起,但这几个简单的参数并不足以构建一个完整的请求(2) 我们可以使用 urllib.request.Request() ...

  4. Python接口测试实战2 - 使用Python发送请求

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  5. 利用Python处理向不受信任主机发送请求

    ,HTTP vs HTTPS 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息.HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器 ...

  6. Python爬虫(二)——发送请求

    1. requests库介绍 ​ 在python中有许多支持发送的库.比如:urlib.requests.selenium.aiohttp--等.但我们当前最常用的还是requests库,这个库是基于 ...

  7. RestTemplate发送请求并携带header信息

    1.使用restTemplate的postForObject方法 注:目前没有发现发送携带header信息的getForObject方法. HttpHeaders headers = new Http ...

  8. zookeeper源码分析之三客户端发送请求流程

    znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的 ...

  9. 用Retrofit发送请求中添加身份验证

    用Retrofit发送请求中添加身份验证====================在安卓应用开发中, retrofit可以极大的方便发送http网络请求,不管是GET, POST, 还是PUT, DEL ...

随机推荐

  1. Ogre RTSS组件解析

    我们为什么要用RTSS. Ogre如计算物体位置,纹理,光照都有固定API如(glMatrixFrustumEXT, glLoadmatrix, glTexture, glLight ),使用这些AP ...

  2. 捋一捋Spring Web的源码思路

    Servlet前提 Java规定了Servlet Container为每一个web app创建一个Servlet Context:而Servlet Context中又包含了诸多Servlet -- 其 ...

  3. MongoDB MapReduce 小例子

    var map = function(){ if (this.gscode == "ZTJB"){ ymd = this.ymd; emit("maxymd", ...

  4. TPshop下载安装

    一. 首先 修改 C:\Windows\System32\drivers\etc\hosts 文件 加一行 127.0.0.1 www.tpshop.com // 这里可以改成你想要的域名 二. 修改 ...

  5. SPRING---------配置文件的命名空间

    两种格式的配置文件: DTD和Schema区别: Schema是对XML文档结构的定义和描述,其主要的作用是用来约束XML文件,并验证XML文件有效性.DTD的作用是定义XML的合法构建模块,它使用一 ...

  6. 【转载】C#反射机制详解

    反射的定义:审查元数据并收集关於它的类型信息的能力,元数据(编辑后的基本数据单元)就是一大堆表,编译器会创建一个类定义表,一个字段定义表,一个方法定义表等,System.Reflection命名空间包 ...

  7. Mac eclipse 连接安卓手机调试 adb

    echo 手机厂商号 >>  ~/.android/adb_usb.ini  ~ echo 0x18d1 >>  ~/.android/adb_usb.ini 重启系统即可 环 ...

  8. JAVA中的数字运算+号与字符串+号

    (1)当“+”两边是非数值类型,“+”就被看作连接符. (2)当“+”两边都是数值类型,“+”就被看作算术运算中的加号. (3)当“+”一边是非数值,一边是数值类型,“+”就被看作连接符.

  9. CocoaPods 第三方库管理器

    下载地址:https://github.com/kattrali/cocoapods-xcode-plugin 跟 VVDocumenter 规范注释生成器的安装方式一样: 下载开源工程在 Xcode ...

  10. spring aop的配置

    http://www.cnblogs.com/oumyye/p/4480196.html http://blog.csdn.net/hjm4702192/article/details/1727766 ...