美文网首页
Python爬虫第二天:请求方法|Cookie|Handler|

Python爬虫第二天:请求方法|Cookie|Handler|

作者: Davis_hang | 来源:发表于2018-10-16 15:33 被阅读0次

    内容简述:         

        一:请求对象Request的post及ajax的get及post    

        二:复杂get请求(函数封装)     

        三:异常捕获和Cookie    

        四:代理及cookielib库

    一:POST请求(百度翻译)

      注意:

         a.如果只加UA获取不到结果,将抓包的所有请求头复制过来再次请求

         b.不要带-请求头里面'Accept-Encoding': 'gzip, deflate'

    二: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)

    【示例】笑话集http://www.jokeji.cn/User/Login.asp

    六:Handler处理器、自定义Opener【简单使用】

            A-前面学习的urllib.request.urlopen()很简单的一个获取网页的函数但是它不能自己构建请求头

            B-引入了request对象,request=urllib.request.Request(url=url, headers=headers),高级之处可以定制请求头

            C- request对象不能携带cookie,也不能使用代理等HTTP/HTTPS高级功能所以引入了Handler 处理器、自定义Opener

    使用步骤:

            1-使用相关的 Handler处理器 来创建特定功能的处理器对象;

             2-然后通过 urllib2.build_opener()方法使用处理器对象,创建自定义opener对象;

             3-使用自定义的opener对象,调用open()方法发送请求。

    七: Handler-Opener高级使用-代理

          1-代理服务器分为免费和收费:

    http://www.kuaidaili.com/快代理(免费)

    http://www.xicidaili.com/西刺代理(免费)

          2-本地浏览器配置代理步骤【简单验证】

                设置==》高级==》打开代理设置==》链接==》局域网设置==》代理服务器==》选中为LAN配置、跳过xxx,将代理服务器的地址和端口号写入,保存即可,百度访问ip,查看ip地址

          3-代码配置代理

              【注】访问网址是http,用http代理服务器。访问https,用https代理服务

    八:cookielib库 和 HTTPCookieProcessor处理器

           cookielib模块:主要作用是提供用于存储cookie的对象

           HTTPCookieProcessor处理器:主要作用是处理cookie对象,并构建handler对象

    相关文章

      网友评论

          本文标题:Python爬虫第二天:请求方法|Cookie|Handler|

          本文链接:https://www.haomeiwen.com/subject/thyhzftx.html