Python urllib.request 模块
urllib.request 模块可以让你使用 Python 标准库从 URL 获取数据。
from urllib import request
对于很多项目来说,Requests 这类第三方库更方便。如果你希望只使用标准库,就可以选择 urllib.request。
打开 URL
urlopen 会返回一个响应对象。
from urllib import request
response = request.urlopen('data:text/plain,Hello%20Python')
print(response.headers.get_content_type())
text/plain
读取响应数据
响应正文会以字节形式返回。
from urllib import request
response = request.urlopen('data:text/plain,Hello%20Python')
content = response.read()
print(type(content).__name__)
print(content.decode('utf-8'))
bytes
Hello Python
添加超时
在打开真实网络 URL 时,请设置超时,这样程序就不会无限等待。
from urllib import request
response = request.urlopen('data:text/plain,ok', timeout=5)
print(response.read().decode('utf-8'))
ok
WARNING
网络请求可能因为很多原因失败。请处理 urllib.error.URLError 之类的异常,并且在获取不可信 URL 时要格外小心。