python-标准库urllib模块
1. python标准库urllib模块
-
urllib库用于访问URL。
-
urllib包含以下类:
-
urllib.request打开和读取URL
-
urllib.error包含urllib.request抛出的异常
-
urllib.parse用于解析URL
-
urllib.robotparser用于解析robots.txt文件
-
-
用的最多是urllib.request 类,它定义了适用于在各种复杂情况下打开URL,例如基本认证、重定向、Cookie、代理等。
-
urllib的request方法
from urllib import request res = request.urlopen("http://www.ctnrs.com")
res是一个HTTPResponse类型的对象,包含以下方法和属性:
方法 描述 getcode() 获取响应的HTTP状态码 geturl() 返回真实URL。有可能URL3xx跳转,那么这个将获得跳转后的URL headers 返回服务器header信息 read(size=-1) 返回网页所有内容。size正整数指定读取多少字节 readline(limit=-1) 读取下一行。size正整数指定读取多少字节 readlines(hint=0, /) 列表形式返回网页所有内容,以列表形式返回。sizehint正整数指定读取多少字节 -
示例
-
示例1、自定义用户代理
from urllib import request url = "http://www.ctnrs.com" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" header = {"User-Agent": user_agent} req = request.Request(url, headers=header) res = request.urlopen(req) print(res.getcode())
-
示例2、向接口提交用户数据
from urllib import request, parse url = "http://www.ctnrs.com/login" post_data = {"username":"user1","password":"123456"} post_data = parse.urlencode(post_data).encode("utf8") #将字典转为URL查询字符串格式,并转为bytes类型 req = request.Request(url, data=post_data, headers=header) res = request.urlopen(req) print(res.read())
-