zoukankan      html  css  js  c++  java
  • Python爬虫连载5-Proxy、Cookie解析

    一、ProxyHandler处理(代理服务器)

    1.使用代理IP,是爬虫的常用手段

    2.获取代理服务器的地址:

    www.xicidaili.com

    www.goubanjia.com

    3.代理用来隐藏真实访问中,代理不允许频繁访问某一个固定网站,所以代理一定要很多很多。

    4.基本使用步骤:

    (1)设置代理地址

    (2)创建PoxyHandler

    (3)创建Opener

    (4)安装Opener

     
    
    """
    
    使用代理访问百度首页
    
    ​
    
    """
    
    from urllib import request,error
    
    ​
    
    if __name__ =="__main__":
    
        url = "https://www.baidu.com"
    
        #设置代理地址
    
        proxy = {"http":"39.106.114.143:80"}
    
        #创建ProxyHandler
    
        proxy_handler = request.ProxyHandler(proxy)
    
        #创建Opener
    
        opener = request.build_opener(proxy_handler)
    
        #安装Opener
    
        request.install_opener(opener)
    
    ​
    
        #现在如果访问url。那么就会使用代理服务器
    
        try:
    
            rsp = request.urlopen(url)
    
            html = rsp.read().decode()
    
            print(html)
    
        except error.URLError as e:
    
            print(e)
    
        except Exception as e:
    
            print(e)

    二、cookie

     1..由于http协议的无记忆性,人们为了弥补这个缺憾,所采用的一个补充协议。

    2.cookie是发放给用户(即http浏览器)的一段信息,session是保存在服务器上的对应的另一半的信息,用来记录用户信息。

    3.cookie和session的区别

    (1)存放的位置不相同;(2)cookie不安全;(3)session会保存在服务器上一定时间,会过期;(3)单个cookie保存数据不超过4k,很多浏览器限制一个站点最多保存20个。

    4.session存放位置

    (1)存在服务器上;(2)一般情况下,session是放在内存中或者数据库中。

    5.案例:

    没有cookie登录则反馈网页为未登录状态

    使用cookie登录

    from urllib import request
    
    ​
    
    if __name__ == "__main__":
    
        url = "https://leetcode-cn.com/"
    
        headers = {
    
            "cookie":"_ga=GA1.2.606835635.1580743041; gr_user_id=d15dfef5-20a7-44a4-8181-f088825ee052; grwng_uid=1d99b83c-8186-4ffa-905e-c912960d9049; __auc=952db4f31700ba0a3811855dc67; csrftoken=zW1tIWrqqDGQ2gDeEAiRM3Pu41f3qetXjvNP5jxuDpekTTyHj262rmfnO2PtXiCI; LEETCODE_SESSION=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJfYXV0aF91c2VyX2lkIjoiOTUxOTE1IiwiX2F1dGhfdXNlcl9iYWNrZW5kIjoiYXV0aGVudGljYXRpb24uYXV0aF9iYWNrZW5kcy5QaG9uZUF1dGhlbnRpY2F0aW9uQmFja2VuZCIsIl9hdXRoX3VzZXJfaGFzaCI6ImQ0ODczNmFiODAwZjk0ZTU3ZjAwMmQ4YjU1YjRmNWZmMDViMDllOTIiLCJpZCI6OTUxOTE1LCJlbWFpbCI6IiIsInVzZXJuYW1lIjoicnVpZ2VnZTY2IiwidXNlcl9zbHVnIjoicnVpZ2VnZTY2IiwiYXZhdGFyIjoiaHR0cHM6Ly9hc3NldHMubGVldGNvZGUtY24uY29tL2FsaXl1bi1sYy11cGxvYWQvZGVmYXVsdF9hdmF0YXIucG5nIiwicGhvbmVfdmVyaWZpZWQiOnRydWUsInRpbWVzdGFtcCI6IjIwMjAtMDItMDMgMTU6MTg6MDYuNjYw160b58f59beeae32; a2873925c34ecbd2_gr_session_id=e9ba4267-3dbc-47c1-aa02-c6e92e8eb4a8; a2873925c34ecbd2_gr_last_sent_sid_with_cs1=e9ba4267-3dbc-47c1-aa02-c6e92e8eb4a8; a2873925c34ecbd2_gr_session_id_e9ba4267-3dbc-47c1-aa02-c6e92e8eb4a8=true; _gid=GA1.2.1242221115.1580917808; Hm_lpvt_fa218a3ff7179639febdb15e372f411c=1580917870; a2873925c34ecbd2_gr_cs1=ruigege66; _gat_gtag_UA_131851415_1=1"
    
        }
    
        req = request.Request(url,headers=headers)
    
        rsp = request.urlopen(req)
    
        html = rsp.read().decode()
    
        with open("rsp.html","w") as f:
    
            f.write(html.encode("GBK","ignore").decode("GBK"))

    三、源码

    Reptitle5_Proxy.py

    Reptitle6_Cookie.py

    https://github.com/ruigege66/PythonReptile/blob/master/Reptitle5_Proxy.py

    https://github.com/ruigege66/PythonReptile/blob/master/Reptitle6_Cookie.py

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    树的同构
    最大子列和
    多项式的表示和运算
    图1
    集合及运算
    树4
    树3
    树2
    期末作业验收
    个人总结
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12267424.html
Copyright © 2011-2022 走看看