def uploadToQQ(files): #pc side #url = 'http://upload.buluo.qq.com/cgi-bin/bar/upload/image?callback=singleImgUpload' #mobile side url = 'http://upload.buluo.qq.com/cgi-bin/bar/upload/base64image' headers = {'Origin': 'http://buluo.qq.com', 'Referer': 'http://buluo.qq.com/buluoadmin/for-crossdomain.html'} data = {'type':'2', 'retype':'5'} if os.path.getsize(qq_cookie) <= 0: logger.info('try to get cookie') weiboLogin.init() s = requests.Session() s.cookies = cookielib.LWPCookieJar(qq_cookie) s.cookies.load(ignore_discard=True) logger.debug('cookies: %s' %(s.cookies)) p = re.compile('\{.+\}') totalSize = 0 totalTime = 0 totalSucc = 0 totalFail = 0 target = 'tencent' for file in files: fileName = os.path.basename(file) fileExt = os.path.splitext(file)[1] type = getContentType(file) size = os.path.getsize(file) #filesBody = {'file':(fileName, open(file, 'rb'), type)} data['base64_code'] = open(file, 'rb') t0 = time.time() r = s.post(url, headers=headers, data=data) t1 = time.time() costTime = t1 - t0 logger.debug('statusCode:%d, response content:%s' %(r.status_code, r.text)) str = p.search(r.text) status = 'fail' if r.status_code == 200 and str: jsonObj = json.loads(str.group(0)) logger.info('>>>>returned: %s' %(jsonObj)) if ("retcode" in jsonObj and jsonObj["retcode"] == 100000) or ("state" in jsonObj and jsonObj["state"] == 'SUCCESS'): totalSize += size totalTime += costTime totalSucc += 1 status = 'success' else: totalFail += 1 logger.error('type:%s, target:%s, Faied upload %s: %s, cost: %f' %('upload', target, file, r.text, costTime)) logger.debug("type:%s, target:%s, pic:%s, status:%s" %('upload', target, file, status)) if status == 'success': logger.info("type:%s, target:%s, size:%d, cost:%f, speed:%f" %('upload', target, size, costTime, size/costTime/1000)) #time.sleep(2) speed = 0 if totalTime > 0: speed = totalSize/totalTime/1000 logger.info("type:%s, target:%s, succ:%d, fail:%d, size:%d, cost:%f, speed:%f" %('upload', target, totalSucc, totalFail, totalSize, totalTime, speed))
def uploadToWeibo(files): url = 'http://picupload.service.weibo.com/interface/pic_upload.php' params = {'app': 'miniblog', 'data': '1', 'mime': 'image/jpeg'} headers = {'Origin': 'http://js.t.sinajs.cn', 'Referer': 'http://js.t.sinajs.cn/t6/home/static/swf/MultiFilesUpload.swf?version=61062054d006c2c2'} logger.debug('headers: %s' %(headers)) if os.path.getsize(weibo_cookie) <= 0: logger.info('try to get cookie') weiboLogin.init() s = requests.Session() s.cookies = cookielib.LWPCookieJar(weibo_cookie) s.cookies.load(ignore_discard=True) logger.debug('cookies: %s' %(s.cookies)) upload(files, 'weibo', s, url, params, headers)