Python2.7 网络请求 urllib、urllib2和requests
使用 python2.7版本urllib、urllib2和requests发送get请求和post请求
# coding=utf-8
import json
import urllib
import urllib2
import requests
# 发送get请求
def test_urllib_get():
web_url = 'http://httpbin.org/get'
data = {
'name': "xiao",
'age': 18
}
# age=18&name=xiao
# 转码
data = urllib.urlencode(data)
response = urllib.urlopen(web_url + '?' + data, context=headers)
print response.read()
# 发送post请求
def test_urllib_post():
web_url = 'http://httpbin.org/post'
data = {
'name': "xiao",
'age': 18
}
data = urllib.urlencode(data)
response = urllib.urlopen(web_url, data=data)
print response.read()
def test_urllib2_get():
web_url = 'http://httpbin.org/get'
data = {
'name': "xiao",
'age': 18
}
data = urllib.urlencode(data)
data = web_url + "?%s" % data
response = urllib2.urlopen(data)
print response.read()
# 添加头部
opener = urllib2.build_opener()
opener.addheaders = [headers]
response_opener = opener.open(data)
print response_opener.read()
def test_urllib2_post():
web_url = 'http://httpbin.org/post'
data = {
'name': "xiao",
'age': 18
}
data = urllib.urlencode(data)
opener = urllib2.build_opener()
# 携带头信息
opener.addheaders = [headers]
print opener
response = opener.open(web_url, data=data)
print response.read()
def test_requests_get():
data = {
'name': "xiao",
'age': 18
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win"
"64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"
" Chrome/98.0.4758.9 Safari/537.36"
}
web_url = 'http://httpbin.org/get'
response = requests.get(web_url, params=data, headers=headers)
print response.content
def test_requests_post():
data = {
'name': "xiao",
'age': 18
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win"
"64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"
" Chrome/98.0.4758.9 Safari/537.36",
}
web_url = 'http://httpbin.org/post'
# "Content-Type": "application/x-www-form-urlencoded",
# response = requests.post(web_url, data=data, headers=headers)
# 接受json格式,同 json=data
response = requests.post(web_url, data=json.dumps(data), headers=headers)
# 默认"Content-Type": "application/json",
# response = requests.post(web_url, json=data, headers=headers)
print response.content
if __name__ == '__main__':
headers = (
"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win"
"64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"
" Chrome/98.0.4758.9 Safari/537.36"
)
test_requests_post()
总结:
在使用这些库时候注意Python版本区别,在python2.7中 urllib2 模块直接导入就可以用,在 python3中urllib2被改为urllib.request等问题.