1. Urllib.request 模块
1.1 相应版本
- Python 2: urllib 2, urllib
- Python 3: 把urllib 和urllib2 合并,urllib.request
1.2 常用的办法
- urllib.request.urlopen(‘网址’) 作用:向网站发起请求并取得响应
- 字节流:response.read()
- 字符串:response.read().decode(“utf-8”)
- urllib.request.Request ( “网址”,headers = “字典” )
- urlopen 不支持重构 User-Agent
1.3 响应对象
- read() 读取服务器相应的内容
- getcode() 返回HTTP的相应码
- geturl() 返回实际数据的URL(防止重定向)
2. urllib.parse
2.1 常用方法
- urldecode ( 字典 )
- quote ( 字符串 里面的参数是字符串 )
3. 请求方法
- get特点:查询的数据在url地址里显示
- post特点
- 在Request方法中添加data参数
- urllib.request.Request ( url, data = data, headers = headers)
- data : 表单数据以bytes类型提交,不是str
4. requests 模块
4.1 安装
- pip install requests
- 在开发工具中安装
4.2 requests 常用方法
- requests,get(url)
4.3 响应对象 response 方法
- response.text 返回unicode格式的数据 ( str )
- response.content 返回字节流数据 二进制
- response.content.decode ( “utf-8” ) 手动编码
- response.url 返回url
- response.encode () = ’ 编码 ’
4.4 requests 模块发送 post 请求
- requests.post ( url, data =data, headers = headers)
4.5 requests 设置代理
- requests 设置代理只需要在请求(get/post)中添加 proxies 参数就可以了
- 代理网站:
- 挂机精灵 http://www.guajijingling.com/
- 快代理 http://www.kuaidaili.com/
- 代理云:http://www.dailiyun.com/
4.6 处理不信任的SSL证书
- SSL证书是数字证书的一种, 类似于各种证书的电子副本,配置在服务器上。遵守SSL协议,受信任的证书颁发机构CA,在验证服务器后颁发,有服务器验证和数据加密传输的功能
- urllib.request.Request ( url, proxies = False)
4.7 requests 解析源码
- 通过分析源码来提高自己的设计分析理解的能力
- 分析源码可以更好的理解第三方库的设计思想和使用方法
- 经常分析源码可以更好的理解网络架构
4.8 cookie
- cookie: 通过在客户端记录的信息确认用户的身份
- http 是无连接协议,客户端和服务器交互仅限于 请求/响应 的过程,结束后断开,下一次请求时会认为是一个新的客户端,为了维护连接,让服务器知道是前一个用户发起的请求,必须在一个地方保存用户信息
4.9 session
- 通过在服务器端记录的信息确定用户的身份,这个session就是一个会话