zoukankan      html  css  js  c++  java
  • 【python爬虫】加密代理IP的使用与设置一套session请求头

    1:代理ip请求,存于redis:

    # 请求ip代理连接,更新redis的代理ip
    def proxy_redis():
        sr = redis.Redis(connection_pool=Pool)
        proxys_text = requests.get("你请求代理IP的地址").text
        #更新redis
        ret = sr.set('proxy_list',proxys_text)
    
    
    # 检测ip代理是否有用 有用返回True,无用返回False
    def check_proxy(proxy_list):
        print("检测的ip池是",proxy_list)
        try:
            for proxy in proxy_list:
                ret = requests.get("https://www.baidu.com/",proxies={"https": "http://账号:密码@{}".format(proxy)}).text
            print("IP可用")
            return True
        except Exception as e:
            return False
    
    # 返回请求代理池
    def get_proxy_list():
        while True:
            sr = redis.Redis(connection_pool=Pool)
            ip_list = sr.get("proxy_list")                    #redies拿到数据
            proxy_list = ip_list.split("
    ")             #数据结构格式化   列表
            ret = check_proxy(proxy_list)                     #检测代理是否有效果
            if ret == True:
                print("请求代理池:", proxy_list)
                return proxy_list
                break
            else:
                proxy_redis()
                print("redis池更新成功")

    2: 设置session的N套请求头:

        # 1:
            session = requests.Session()  # 设置一组session请求
            session.proxies = {
                "http": "http://账号:密码@{}".format(proxy),
                "https": "http://账号:密码@{}".format(proxy),
            }
            headers = head()
            session.headers.update(headers)  # 更新请求头 请求头自定义
            session.post("https://www.amazon.com/gp/delivery/ajax/address-change.html", data)      # 设置cookeis
            ret = session.get("https://www.amazon.com/dp/B0047CJZLM", headers=headers).text
            IUSC.append(session)
        
            # 1
    
            # 2
            session = requests.Session()  # 设置一组session请求
            session.proxies = {
                "http": "http://sellerbdata:lv6nv17v@{}".format(proxy),
                "https": "http://sellerbdata:lv6nv17v@{}".format(proxy),
            }
            headers = head()
            session.headers.update(headers)
            session.post("https://www.amazon.com/gp/delivery/ajax/address-change.html", data,)  # 设置邮编
            IUSC.append(session)
            # 2
  • 相关阅读:
    前缀和-长度最小的子数组
    找到字符串中所有的字母异位词
    区间列表的交集
    比较含退格的字符串
    [转] ios数组基本用法和排序
    [转] 【iOS基础知识】之判断NSString是否为整数、浮点数
    解决resignFirstResponder或者endEditing无效的办法
    iOS 根据文字字数动态确定Label宽高
    [转] iOS开发-搜索栏UISearchBar和UISearchController
    UIActionSheet的最后一项点击失效
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/11994064.html
Copyright © 2011-2022 走看看