【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("\r\n")             #數據結構格式化   列表
        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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM