Python内置的HTTP请求库
方法 | 模块 |
---|---|
urllib.request | 请求模块 |
urllib.error | 异常处理模块 |
urllib.parse | url解析模块 |
urllib.robotparser | robots.txt解析模块 |
urlopen
urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
============================================
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))
============================================
import urllib.parse
import urllib.request
data = bytes(urllib.parse.urlencode({'word': 'hello'}), encoding='utf-8')
response = urllib.request.urlopen('http://httpbin.org/post', data=data)
print(response.read())
============================================
import urllib.request
response = urllib.request.urlopen('http://httpbin.org/get', timeout=1)
print(response.read())
============================================
import socket
import urllib.request
import urllib.error
try:
response = urllib.request.urlopen('http://httpbin.org/get', timeout=0.1)
except urllib.error.URLError as e:
if isinstance(e.reason, socket.timeout):
print('TIME OUT')
============================================
响应
import urllib.request
response = urllib.request.urlopen('http://www.python.org')
print(type(response)) # 响应类型
print(response.status) # 状态码
print(response.getheaders()) # 响应头
print(response.getheader('Server')) # 响应头