test_and_verify.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:IPProxy 作者: yutian2011 项目源码 文件源码
def test_dest_url(ip,is_http,dest_infos,redis=None):
    name = dest_infos["name"]
    url = dest_infos["url"]
    store_cookies = dest_infos["store_cookies"]
    use_default_cookies = dest_infos["use_default_cookies"]
    pro = {TYPES[is_http]:ip}
    time = 0
    flag= False
    try:
        r = None
        cookie_old = None
        r_cookies_key = "%s:%s" % (name,ip)
        if store_cookies and redis != None:
            cookie_old = redis.get(r_cookies_key)
            #print "old cookie:",cookie
            if cookie_old != None and cookie_old != "None" and cookie_old != "{}":
                #print "use cookie"
                log.debug("PID:%d IP:%s use old cookies:%s " % (os.getpid(),ip,cookie_old))
                cookies = cookiejar_from_dict(json.loads(cookie_old))
                r = requests.get(url,proxies=pro,cookies=cookies,timeout=SOKCET_TIMEOUT)
            else:
                if use_default_cookies:
                    rand_cookies = dest_infos["default_cookies"]
                    log.debug("PID:%d IP:%s use random cookies:%s " % (os.getpid(),ip,str(rand_cookies)))
                    cookie = cookiejar_from_dict(rand_cookies)
                    r = requests.get(url,proxies=pro,cookies=cookie,timeout=SOKCET_TIMEOUT)
                else:
                    r = requests.get(url,proxies=pro,timeout=SOKCET_TIMEOUT)
        else:
            if use_default_cookies:
                cookie = cookiejar_from_dict(dest_infos["default_cookies"])
                r = requests.get(url,proxies=pro,cookies=cookie,timeout=SOKCET_TIMEOUT)
            else:
                r = requests.get(url,proxies=pro,timeout=SOKCET_TIMEOUT)
        time += r.elapsed.microseconds/1000
        log.debug("PID:%d dest url:%s proxy ip:%s result:%d time:%d type:%s" % (os.getpid(),url,ip,r.status_code,time,TYPES[is_http]))
        if r.ok:
            flag = True
            if store_cookies and redis != None:
                #print "new cookies:",r.cookies
                if r.cookies != None :
                    cookie = json.dumps(dict_from_cookiejar(r.cookies))
                    if cookie and cookie != "{}" and cookie_old != cookie:
                        log.debug("PID:%d IP:%s new cookies:%s old cookies:%s" % (os.getpid(),ip,cookie,cookie_old))
                        redis.set(r_cookies_key,cookie)
    except Exception as e:
        log.debug("PID:%d error:%s" % (os.getpid(),e.message))
    return flag,time
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号