【6】Python网络请求:urllib模块

python操作网络,也就是打开一个网站,或者请求一个http接口,可以使用urllib模块。
urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块

 

Urllib是python内置的HTTP请求库
包括以下模块
urllib.request 请求模块
urllib.error 异常处理模块
urllib.parse url解析模块
urllib.robotparser robots.txt解析模块

 

因为有更好用的模块,所以再在此不对此模块进行更多解释,想更好的学习urllib模块可以参考下面的博客或官方文档。

参考博客:http://www.cnblogs.com/zhaof/p/6910871.html

官方文档:https://docs.python.org/3/library/urllib.html

import json
from urllib.request import urlopen # 打开网页
from urllib.parse import urlencode

# ====get请求====
url='https://www.cnblogs.com/haifeima/p/9829601.html#autoid-5-0-5'
res=urlopen(url).read()#发起get请求,并获取结果
print(res.decode())#返回的是二进制类型,所以要decode变成字符串
f=open('b.html','w',encoding='utf-8') #将上面的网页保存到本地,执行后会在本地生成一个叫做b.html的文件
f.write(res.decode())
f.close()


# ====post请求====
url='http://api.nnzhp.cn/api/user/login'
data={"username":"niuhanyang","passws":"aA123456"}
data=urlencode(data)
res=urlopen(url,data).read()#发起post请求,加个date把数据传进来,获取结果
print(res.decode())#转成decode格式
d=json.loads(res.decode())#转成字典
print(d.get('login_info').get('sign'))
f=open('b.html','w',encoding='utf-8') #将上面的网页保存到本地,执行后会在本地生成一个叫做b.html的文件
f.write(res.decode())
f.close()

 

posted @ 2018-11-08 12:19  柠檬不萌!  阅读(368)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end