内容简述:
一:异步请求ajax的get及post
二:复杂get请求(函数封装)
三:异常捕获和Cookie简单登录
四:Handler对象及代理的使用
一:Ajax请求 -get|post
豆瓣电影分类排行榜-战争ajax-get
https://movie.douban.com/j/chart/top_listtype=22&interval_id=100%3A90&action=&start=0&limit=20
起始行start规律(当前页-1)*psize
肯德基餐厅排行榜 ajax-post
二:复杂get(封装)请求-批量写入
百度贴吧python3吧
http://tieba.baidu.com/f?ie=utf-8&kw=python3&pn=0
http://tieba.baidu.com/f?kw=python3&ie=utf-8&pn=50
http://tieba.baidu.com/f?kw=python3&ie=utf-8&pn=100
http://tieba.baidu.com/f?kw=python3&ie=utf-8&pn=150
1 0
2 50
3 100
n (n-1)*50
三:URLError和HTTPError
HTTPError类是URLError类的子类
通过urllib发送请求的时候,有可能会发送失败,这个时候如果想让你的代码更加的健壮,可以通过try-except进行捕获异常,异常有两类,URLError\HTTPError
四:Cookie简单登录
客户端|浏览器的会话技术
执行规则:cookie本身由浏览器保存,通过Response将cookie写到浏览器上,
下一次访问,浏览器会根据不同的规则携带cookie过来
response.set_cookie(key,value[,max_age=None,exprise=None)]
request.cookie.get(key)
特性:
- 支持过期时间
-默认会自动携带本网站的所有cookie
-根据域名进行cookie存储
-不能跨域名和浏览器
Cookie是通过服务器创建的Response来创建的
操作说明:
response.set_cookie(key,value,max_age=None,exprise=None)
max_age: 整数,指定cookie过期时间
expries :整数,指定过期时间,可以指定一个具体日期时间
max_age和expries两个选一个指定
过期时间:max_age 设置为 0 浏览器关闭失效|设置为None永不过期
删除cookieresponse.delete_cookie(key)
【示例】论坛-ChinaUnix.net http://bbs.chinaunix.net/
五:Handler处理器、自定义Opener【简单使用】
A-urllib.request.urlopen()是获取网页的函数但是不能自己构建请求头
B-引入了request对象,高级之处可以定制请求头
req=urllib.request.Request(url=url, headers=headers)
C- request对象不能使用代理等HTTP/HTTPS高级功能。
所以引入了Handler 处理器、自定义Opener
使用步骤:
1-使用相关的 Handler处理器来创建特定功能的处理器对象hander
hander=urllib.request.HTTPHandler()
2-通过urllib.request.build_opener(hander)构建自定义opener对象
opener=urllib.request.build_opener(hander)
3-使用自定义的opener对象,调用open()方法发送请求。
res=opener.open(req)
六: Handler-Opener高级使用-代理
1-代理服务器分为免费和收费:
http://www.kuaidaili.com/ 快代理(免费)
http://www.xicidaili.com/ 西刺代理(免费)
2-代理的使用
【注】访问网址是http,用http代理服务器。访问https,用https代理服务
七:作业
1-完成课堂代码
2-百度翻译-ajax的post请求
3-模拟简单登录-笑话集 http://www.jokeji.cn/User/Login.asp