Python爬虫第二天:异步请求get和post|复杂get|异常及Cookie简单登录|Handler及代理

内容简述:         

    一:异步请求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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Handler处理器 和 自定义Opener 1. 概述 opener是 urllib2.OpenerDirect...
    rhlp阅读 965评论 0 0
  • 上网原理 1、爬虫概念 爬虫是什麽? 蜘蛛,蛆,代码中,就是写了一段代码,代码的功能从互联网中提取数据 互联网: ...
    riverstation阅读 8,216评论 1 2
  • 网络 理论模型,分为七层物理层数据链路层传输层会话层表示层应用层 实际应用,分为四层链路层网络层传输层应用层 IP...
    FlyingLittlePG阅读 813评论 0 0
  • 目录Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存...
    Tomatoro阅读 16,982评论 7 186
  • 为了迎接高考、鼓舞斗志,淮滨高级中学高三年级二十九班精心组织了“2016我们一起向高考奔跑”的主题班会活动。各组都...
    弘墙阅读 329评论 1 0