使用 urllib 发送请求

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

In [1]: import urllib.request
In [2]: response = urllib.request.urlopen("http://www.baidu.com/")    //发送GET请求
In [3]: response.read().decode('utf-8')    //read()方法用于获取响应内容,readline(),readlines()也可以
In [4]: response.status                    //status属性用于获取响应状态码
In [5]: response.getcode()                 //getcode()方法用于获取响应状态码
In [6]: response.geturl()                  //geturl()方法用于获取请求的源地址
In [7]: response.getheaders()              //getheaders()方法用于获取响应头信息
In [8]: 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("请求超时!")

 

 

 

 

 

 

     

转载于:https://www.cnblogs.com/pzk7788/p/10531002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值