import urllib.request
import urllib.parse # 用于解码中文
url ='http://127.0.0.1:5000' # 首先要访问的网址
try:
# 读取网页内容
html = urllib.request.urlopen(url) # 打开网址
html = html.read().decode() # 读取并解码网页内容
print(html)
# 用get和post方式发送请求
data,data1 = '广东','深圳'
data = urllib.parse.quote(data) # 如果有中文,必须先parse.quote,将中文转成UTF8
data1 = urllib.parse.quote(data1)
getdata = 'province='+data # 用get方式发送数据内容,必须用key=value的形式,
getdata1 = 'city='+data1
postdata = getdata + getdata1 # 用post方式发送数据内容
postdata = postdata.encode() # 需要把post的数据转换成二进制
response = urllib.request.urlopen(url+'?'+getdata+'&'+getdata1) # 用GET方式向网站发送请求,多个用‘&’连接,网址后面要接问号
response = urllib.request.urlopen(url,data=postdata) # 用POST方式向网站发送请求
response = response.read().decode()
print(response)
# 下载文件
urllib.request.urlretrieve(url+'?filename='+urllib.parse.quote(fileName),'download'+fileName) # 下载文件
# 下面是上传文件
uploadurl = 'http://127.0.0.1:5000/upload' # 要上传文件的网址
headers = {'content-type':'application/octet-stream'} # 上传文件,需要设置表头,并告诉服务端这是二进制数据流
fileName = 'c:\\abc.jpg' # 文件路径文件名
f = open(fileName,'rb') # 以二进制的方式打开要上传的文件
data = f.read()
f.close()
p = fileName.rfind('\\') # 找出文件名在路径所在位置
fileName = fileName[p+1:]
purl = url + '?fileName=' + urllib.parse.quote(fileName)
req = urllib.request.Request(purl,data,headers) # 将网址和上传数据和表头打包
msg = urllib.request.urlopen(req)
msg = msg.read().decode()
except Exception as err:
print(err)
urllib 的基础
最新推荐文章于 2020-12-02 14:48:39 发布