urllib模块访问网络十分的方便:
1 简单的get请求
import urllib
import urllib.request
url = "http://www.baidu.com"
res = urllib.request.urlopen(url)
#获取header信息对
for k, v in res.getheaders():
print('%s: %s' % (k, v))
#获取网页返回信息
data = res.read()
print(data.decode('utf-8'))
#200返回状态码
print(res.status)
#OK
print(res.reason)
url2 = "http://www.baidu.com"
params={"key1":"values"}
query_data = urllib.parse.urlencode(params)
print(query_data)
2 复杂的Get请求
#利用Request添加header
import urllib.request
url = "http://www.baidu.com"
req = urllib.request.Request(url)
req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
with urllib.request.urlopen(req) as f:
print('状态码和返回标识:', f.status, f.reason)
for k, v in f.getheaders():
print('header键值对%s: %s' % (k, v))
print('\n')
print('网页返回值:', f.read().decode('utf-8'))
3 Post请求
from urllib import request, parse
#post请求参数
req_data = parse.urlencode([
('username', "123456"),
('password', "123456"),
])
#添加header信息
req = request.Request('https://www.baidu.com')
req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
req.add_header('Referer', 'https://www.baidu.com')
with request.urlopen(req, data=req_data.encode('utf-8')) as f:
print('Status:', f.status, f.reason)
print('\n')
print('header 键值对: ')
print('\n')
for k, v in f.getheaders():
print('%s: %s' % (k, v))
print('\n')
print('返回数据:', f.read().decode('utf-8'))