Python HTTP库 urllib之 urlopen 用法

urllib.request 模块提供了最基本的构造HTTP请求的方法,利用这个模块可以模拟浏览器的请求发起过程,同时还具有处理授权验证、重定向、浏览器Cookie以及其他一些功能。

# urlopen
import urllib.request


response = urllib.request.urlopen("https://www.python.org")
# print(response.read().decode('utf-8'))
print(type(response)) # 输出响应类型
print(response.status) # 输出响应状态
print(response.getheaders()) # 输出响应的头信息
print(response.getheader('Server')) # 输出响应头中的Server的值

urlopen-data 参数使用

# use method of param data
import urllib.parse
import urllib.request


data = bytes(urllib.parse.urlencode({'name':'germey'}), encoding='utf-8')
response = urllib.request.urlopen('https://www.httpbin.org/post', data=data)
print(response.read().decode('utf-8'))

运行结果如下:

ab14630ac7bfc5ef8b6a8a566ec831c7.png

urlopen-timeout 参数使用

# use method of param timeout


response = urllib.request.urlopen('https://www.httpbin.org/post', data=data, timeout=0.1)
print(response.read().decode('utf-8'))

这里设置了timeout为0.1秒,运行0.1秒后,服务器依然没有响应,则抛出URLError异常

56cf8b5bd49e775b72829fa93caf6086.png

URLError异常处理

try:
    response = urllib.request.urlopen('https://www.httpbin.org/post', data=data, timeout=0.1)
    print(response.read().decode('utf-8'))
except urllib.error.URLError as e:
    if isinstance(e.reason, socket.timeout):
        print("Time out")

后续公众号会发布系列教程,更多内容请关注公众号:程序猿学习日记 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值