爬虫学习笔记day03


Day03笔记
    1. Cookie模拟登录
        1. 什么是cookie、session
            HTTP协议是一种无连接协议,客户端和服务器狡猾仅仅限于 请求/响应过程,结束后断开,服务器会认为是一个新的客户端,为了维护他们
            之间的连接,必须在一个地方保存客户端信息
                cookie: 通过在客户端记录的信息确定用户身份
                session: 通过服务端记录的信息确定用户身份
        2. 案例 : 利用Cookie模拟登陆人人网
            1. 一定要先登录成功1次,获取到cookie
    2. request模块
        1. get(url,params=params,headers=headers)
            params: 查询参数,字典,不用编码,也不拼接url
        2. 响应对象res的属性
            1. encoding : 响应字符编码,res.encoding='utf-8'
            2. text     : 字符串
            3. content  : 字节流
            4. status_code : 返回Http的响应码
            5. url      : 返回时就数据的url
        3. 非结构化数据存储
            html = res.content
            with open('xxx','wb')as f:
                f.write(html)
        4. post(url,data=data,headers=headers)
            1. data : Form表单数据, 字典类型,不用编码,不用转码
            2. 有道翻译
                # 此处data 为Form表单数据
                res =requests.post(url,data,headers=headers)
                res.encoding ='utf-8'
                html = res.text
    3. get()方法中不同参数
        1. 代理IP(参数名:proxies)
            1. 获取代理IP的网站
                西刺代理IP
                快代理
                全网代理
            2. 普通代理
                1. 格式 :proxies ={"协议":"协议://ip地址:端口号"}
                    http://httpbin.org/get : 能够显示客户端的headers 和 ip
                    proxies ={'http':'http://61.135.217.7:80'}    
            3. 私密代理
                1. 格式
                    proxies ={'http':'http://用户名:密码@IP地址:端口号'}
    
                    用户名 :309435365
                    密码 :szayclhp
                    ip地址 :116.255.162.107
                    端口号 : 16816
            4. 链家二手房案例(mysql数据库)
                1. 找url
                2. 正则
                3. 写代码
                17_链家存mysql.py
            5. 链家二手房案例(mongoDB数据库)
                16_链家存mongodb.py
        2. Web客户端验证(参数名:auth=(元组))
            1. auth = ("用户名","密码")
                auth =("tarenacode","code_2013")
            2. 案例 : 爬取code.tarena目录
                1. 步骤
                    1. URL : http://code.tarna.com.cn
                    2. 正则 :
                        <a href=".*?">(.*?)</a>
                    3. 写代码
        3. SSL证书认证(参数名:verify=True | False)
            1. verify = True : 默认,进行SSL证书认证
            2. verify = False : 不做认证
    4. urllib.request中Handler处理器
        1. 定义
            自定义的urlopen()方法,因为模块自带的urlopen不支持代理等功能,通过Handler处理器自定义
            urlopen方法
        2. 常用方法
            1. opener = build_opener(某种功能的Handler处理器对象)
            2. opener = open(url)
        3. 使用流程
            1. 创建相关的Handler处理器对象
            2. 创建自定义opener对象
            3. 利用opener对象的open方法发请求获响应
        4. Handler处理器分类
            1. HTTPHandler : 没有特殊功能
            2. ProxyHandler({普通代理})  : 普通代理
                代理格式: {"协议":"http://ip端口号"}
            3. ProxyBasicAuthHandler(密码管理器对象)
            4. HTTPBasicAuthHandler(密码管理器对象)
        5. 密码管理器用途
            1. 私密代理
            2. Web客户端认证
            3. 程序实现流程
                1. 创建密码管理器对象
                    pwdmg = urllib.request.HTTPPasswordMgrWithDefaultRealm()
                
                2. 把认证信息添加到对象里面去
                    pwdmg.add_password(None,Webserver,user,password)
                
                3. 创建Handler处理器对象
                    proxy_handler = urllib.request.ProxyBasicAuthHandler(pwdmg)

                4. 创建自定义opener对象
                    opener = urllib.request.build_opener(proxy_handler)

                5. 利用opener对象的open方法发送请求获取响应
                    res = urllib.request.Request(url,headers=headers)
                    res = opener.open(req)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值