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
评论列表
文章目录