def send_pkg_url(thread_num): while True: domain = 'mip-cache-%s.' % PushTool.random_chars(8) + choice(all_site) # static = 'mip-cache-%s.' % randint(1000, 2000) + 'aienao.com' # static = 'www.' + choice(all_site) # static = 'www1.' + 'aienao.com' url = '' for x in range(0, 100): url += PushTool.rand_all(domain) + '\n' url = url.strip('\n') headers = { 'User-Agent': 'curl/7.12.1', 'Host': 'data.zz.baidu.com', 'Content-Type': 'text/plain', 'Content-Length': str(len(url)), } target_url = 'http://data.zz.baidu.com/urls?site=%s&token=F5KnjXlVWrKS3MFm&type=mip' % domain try: requests.post(target_url, data=url, headers=headers) response = requests.post(target_url, data=url, headers=headers) print(datetime.now(), response.json(), domain) except ConnectionError: print('服务器断开连接。。。') except JSONDecodeError: print('服务器未返回正确数据。。')
def https_push(domain): global success_code global fail_code url = '' while True: try: r = PushTool.rand_all(domain) i = PushTool.rand_all(domain) headers = { 'User-Agent': PushTool.user_agent(), 'Referer': r, 'Accept': '*/*', 'Connection': 'keep-alive', 'Host': 'sp0.baidu.com', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar target = '%s?r=%s&l=%s' % (server, r, i) # http = requests.get(target, headers=headers) http = conn.get(target) url = parse.unquote(http.url) if http.content == b'' and http.status_code == 200: success_code += 1 print('成功 %s 失败 %s %s' % (success_code, fail_code, url)) else: fail_code += 1 print('成功 %s 失败 %s %s' % (success_code, fail_code, url)) except: fail_code += 1 print('成功 %s 失败 %s %s' % (success_code, fail_code, url))
def http_push(domain): tool = PushTool() while True: global success_num global failure_num global start_time referer = tool.rand_all() r = tool.rand_all() headers = { 'User-Agent': PushTool.user_agent(), 'Referer': referer, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookies_jar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookies_jar payload = {'r': r} code = 404 url = '' try: r = parse.quote_plus(r) url = 'http://api.share.baidu.com/s.gif?r=%s&l=%s' % (r, referer) res = conn.get(url, params=payload, timeout=10) code = res.status_code url = parse.unquote(res.url) if code == 200: if url == 'http://www.baidu.com/search/error.html': failure_num += 1 else: success_num += 1 else: failure_num += 1 except: # traceback.print_exc() failure_num += 1 this_time = datetime.now() spend = this_time - start_time if int(spend.seconds) == 0: speed_sec = success_num / 1 else: speed_sec = success_num / int(spend.seconds) speed_day = float('%.2f' % ((speed_sec * 60 * 60 * 24) / 10000)) percent = success_num / (failure_num + success_num) * 100 sys.stdout.write(' ' * 100 + '\r') sys.stdout.flush() print(referer, code) sys.stdout.write( '%s 成功%s 预计(day/万):%s 万 成功率:%.2f%% 状态码:%s\r' % (datetime.now(), success_num, speed_day, percent, code)) sys.stdout.flush()
def push_url(domain): while True: global success_count global failure_count referer = PushTool.get_url(domain) r = PushTool.get_url(domain) # proxy = PushTool.get_proxy() # proxy = b'115.219.74.242:26043' # if isinstance(proxy, bytes): # proxy = proxy.decode('utf8') # proxies = {"http": "http://{proxy}".format(proxy=proxy)} headers = { 'User-Agent': PushTool.user_agent(), 'Referer': referer, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar payload = {'r': r, 'l': referer} code = 404 url = '' try: # res = conn.get('http://api.share.baidu.com/s.gif', params=payload, timeout=10, proxies=proxies) res = conn.get( 'https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif?', params=payload, timeout=20) # res = conn.get('https://github.com') code = res.status_code if code == 200: success_count += 1 else: failure_count += 1 url = res.url except: traceback.print_exc() failure_count += 1 print('----------------------') print(code, url) print('success:%d failure:%d' % (success_count, failure_count))
def https_push(domain): global success_num global failure_num global start_time url = '' code = 404 while True: try: r = PushTool.rand_all(domain) url = PushTool.rand_all(domain) headers = { 'User-Agent': PushTool.user_agent(), 'Referer': r, 'Accept': '*/*', 'Connection': 'keep-alive', 'Host': 'sp0.baidu.com', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar r = parse.quote_plus(r) target = '%s?r=%s&l=%s' % (server, r, url) http = requests.get(target, headers=headers) # http = conn.get(target) code = http.status_code if http.content == b'' and code == 200: success_num += 1 else: failure_num += 1 except: failure_num += 1 this_time = datetime.now() spend = this_time - start_time if int(spend.seconds) == 0: speed_sec = success_num / 1 else: speed_sec = success_num / int(spend.seconds) speed_day = float('%.2f' % ((speed_sec * 60 * 60 * 24) / 10000000)) percent = success_num / (failure_num + success_num) * 100 sys.stdout.write(' ' * 100 + '\r') sys.stdout.flush() print(url, code) sys.stdout.write( '%s 成功%s 预计(day/千万):%s M 成功率:%.2f%% 状态码:%s\r' % (datetime.now(), success_num, speed_day, percent, code)) sys.stdout.flush()
def push_url_two(domain): while True: global success_count global failure_count referer = PushTool.rand_all(domain) r = PushTool.rand_all(domain) # referer = 'http://www.zzqq.com/lsjxxx/20181010xxxxx.html' # r = 'http://www.baidu.com/xxxx.html' headers = { 'User-Agent': PushTool.user_agent(), 'Referer': referer, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar payload = {'r': r, 'l': referer} code = 404 url = '' try: res = conn.get('http://api.share.baidu.com/s.gif', params=payload, timeout=10) code = res.status_code url = parse.unquote(res.url) if code == 200: if url == 'http://www.baidu.com/search/error.html': failure_count += 1 else: success_count += 1 else: failure_count += 1 except: traceback.print_exc() failure_count += 1 print('----------------------') print(code, url) print('success:%d failure:%d' % (success_count, failure_count))
def submit(self, num): global target global failure_count global success_count while True: url = '' code = 233 try: url = PushTool.rand_all(target) resp, url = self._do_submit(url) code = resp.status_code if code != 200: failure_count += 1 self._change_cookie() print('返回代码异常') else: resp_entity = json.loads(resp.text) if "status" not in resp_entity or resp_entity[ "status"] != 0: failure_count += 1 self._drop_cookie() self._change_cookie() print(resp_entity) else: print('成功!') success_count += 1 except Exception as e: print(e) failure_count += 1 print('服务器异常') time.sleep(3)
async def run(num): tasks = [] # Semaphore, 相当于基于服务器的处理速度和测试客户端的硬件条件,一批批的发 # 直至发送完全部(下面定义的number/num) sem = asyncio.Semaphore(2000) # 创建session,且对本地的TCP连接不做限制limit=0 # 超时时间指定 # total:全部请求最终完成时间 # connect: aiohttp从本机连接池里取出一个将要进行的请求的时间 # sock_connect:单个请求连接到服务器的时间 # sock_read:单个请求从服务器返回的时间 import aiohttp # timeout = aiohttp.ClientTimeout(total=300, connect=60, sock_connect=60, sock_read=60) async with ClientSession(connector=TCPConnector(limit=0)) as session: while True: cookie_jar = PushTool.get_cookies() for i in range(0, num): # 如果是分批的发,就使用并传递Semaphore task = asyncio.ensure_future( bound_register(sem=sem, session=session, cookie_jia=cookie_jar)) tasks.append(task) responses = asyncio.gather(*tasks) await responses
async def register_user(session, cookie_jar): global success_num global fail_num global start_time referer = PushTool.get_url('http://www.61k.com/lsj') r = PushTool.get_url('http://www.61k.com/lsj') headers = { 'User-Agent': PushTool.user_agent(), 'Referer': referer, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com', } status = 233 try: payload = { 'r': r, 'l': referer, } async with ClientSession(cookies=cookie_jar) as session: async with session.post(url='http://api.share.baidu.com/s.gif', data=payload, headers=headers, timeout=2) as response: r = await response.read() if r == b'' and response.status == 200: success_num += 1 else: fail_num += 1 status = response.status except Exception as e: fail_num += 1 this_time = datetime.now() spend = this_time - start_time speed_sec = int(success_num / spend.seconds) speed_day = (speed_sec * 60 * 60 * 24) / 10000000 percent = success_num / (fail_num + success_num) * 100 print("%s 成功%s 预计(day/千万):%s M 成功率:%.2f%% 状态码:%s" % (datetime.now(), success_num, speed_day, percent, status))
def send_pkg_url(domain): # pre_num = 6 # while pre_num: # static = 'mipcdn1693.aienao.com' url = '' # if pre_num == 6: # for x in range(0, 100): # url += PushTool.rand_all(domain) + '\n' # url = url.strip('\n') # elif pre_num == 1: # for x in range(0, 1900): # url += PushTool.rand_all(domain) + '\n' # url = url.strip('\n') # else: # for x in range(0, 2000): # url += PushTool.rand_all(domain) + '\n' # url = url.strip('\n') for x in range(0, 100): url += PushTool.rand_all(domain) + '\n' url = url.strip('\n') headers = { 'User-Agent': 'curl/7.12.1', 'Host': 'data.zz.baidu.com', 'Content-Type': 'text/plain', 'Content-Length': str(len(url)), } target_url = 'http://data.zz.baidu.com/urls?site=%s&token=F5KnjXlVWrKS3MFm&type=mip' % domain response = object try: response = requests.post(target_url, data=url, headers=headers) message = response.json()['message'] print(datetime.now(), domain, response.json()) return message except ConnectionError: # print(datetime.now(), 'pkg_procedure\t服务器断开连接。。。') pass except ChunkedEncodingError: # print(datetime.now(), 'pkg_procedure\t远程主机强迫关闭了一个现有的连接。。。') pass except JSONDecodeError: # print(datetime.now(), 'pkg_procedure\t服务器未返回正确数据。。') pass except KeyError: message = response.json() print(datetime.now(), domain, message)
def https_push(domain): global success_code global fail_code url = '' while True: try: try: test = requests.get(domain, timeout=2) if test.status_code == 404: print('链接已经失效') return except: continue r = 'https://baobao.baidu.com/mbaby/browse?period=0' i = domain headers = { 'User-Agent': PushTool.user_agent(), 'Referer': r, 'Accept': '*/*', 'Connection': 'keep-alive', 'Host': 'sp0.baidu.com', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar target = '%s?r=%s&l=%s' % (server, r, i) # http = requests.get(target, headers=headers) http = conn.get(target) url = parse.unquote(http.url) if http.content == b'' and http.status_code == 200: success_code += 1 print('成功 %s 失败 %s %s' % (success_code, fail_code, url)) else: fail_code += 1 print('成功 %s 失败 %s %s' % (success_code, fail_code, url)) except: fail_code += 1 print('成功 %s 失败 %s %s' % (success_code, fail_code, url))
def _do_submit(self, url): url = url.strip() headers = { "Connection": "keep-alive", "Origin": "https://ziyuan.baidu.com", "User-Agent": PushTool.user_agent(), "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Accept": "application/json, text/javascript, */*; q=0.01", "X-Requested-With": "XMLHttpRequest", "X-Request-By": "baidu.ajax", "Referer": "https://ziyuan.baidu.com/linksubmit/url", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,mr;q=0.6", "Cookie": self._cookie, } resp = requests.post( url="https://ziyuan.baidu.com/linksubmit/urlsubmit", data={"url": url}, headers=headers, timeout=10) return resp, url
from tools.push_tools import PushTool import requests import traceback from threadpool import makeRequests, ThreadPool success_count = 0 failure_count = 0 cookie = PushTool.get_cookies() def push_url(domain): while True: global success_count global failure_count referer = PushTool.get_url(domain) r = PushTool.get_url(domain) # proxy = PushTool.get_proxy() # proxy = b'115.219.74.242:26043' # if isinstance(proxy, bytes): # proxy = proxy.decode('utf8') # proxies = {"http": "http://{proxy}".format(proxy=proxy)} headers = { 'User-Agent': PushTool.user_agent(), 'Referer': referer, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com', }
def send_pkg_url(thread_num, is_cookie, is_proxy, timeout): domain = 'mip-cache-%s.%s:%s' % (randint(1000, 1500), choice(all_site), randint(10000, 65535)) while True: code = 404 proxy = '' global success_num global failure_num global start_time target = PushTool.rand_all(domain) before = PushTool.rand_all(domain) headers = { 'User-Agent': PushTool.user_agent(), 'Referer': target, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com', } payload = { 'l': target, 'r': before } try: if is_cookie and is_proxy: proxy = PushTool.get_proxy().get("proxy") if isinstance(proxy, bytes): proxy = proxy.decode('utf8') proxies = {"http": "http://{}".format(proxy)} conn = requests.Session() conn.headers = headers cookies_jar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookies_jar res = conn.get('http://api.share.baidu.com/s.gif', params=payload, timeout=timeout, proxies=proxies) elif is_cookie and is_proxy is False: conn = requests.Session() conn.headers = headers cookies_jar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookies_jar res = conn.get('http://api.share.baidu.com/s.gif', params=payload, timeout=timeout) elif is_cookie is False and is_proxy: proxy = PushTool.get_proxy().get("proxy") if isinstance(proxy, bytes): proxy = proxy.decode('utf8') proxies = {"http": "http://{}".format(proxy)} res = requests.get( 'http://api.share.baidu.com/s.gif', params=payload, headers=headers, proxies=proxies, timeout=timeout, ) else: res = requests.get( 'http://api.share.baidu.com/s.gif', params=payload, headers=headers, timeout=timeout, ) code = res.status_code url = parse.unquote(res.url) if code == 200: if url == 'http://www.baidu.com/search/error.html': failure_num += 1 else: success_num += 1 else: failure_num += 1 except Exception as e: print(e) failure_num += 1 this_time = datetime.now() spend = this_time - start_time if int(spend.seconds) == 0: speed_sec = success_num / 1 else: speed_sec = success_num / int(spend.seconds) speed_day = float('%.2f' % ((speed_sec * 60 * 60 * 24) / 10000000)) if code == 200: print('\033[034m thread_num:{}\tstatus:{}\tproxy:{}\tspeed:{}\tsite_url:{:<20}\t'.format( thread_num, code, is_proxy, speed_day, target, )) else: print('\033[031m thread_num:{}\tstatus:{}\tproxy:{}\tspeed:{}\tsite_url:{:<20}\t'.format( thread_num, code, is_proxy, speed_day, target, ))
from tools.push_tools import PushTool import requests from urllib import parse from datetime import datetime from random import choice, randint success_num = 0 failure_num = 0 cookie = PushTool.get_cookies() start_time = datetime.now() all_site = PushTool.get_all_site() def send_pkg_url(thread_num, is_cookie, is_proxy, timeout): domain = 'mip-cache-%s.%s:%s' % (randint(1000, 1500), choice(all_site), randint(10000, 65535)) while True: code = 404 proxy = '' global success_num global failure_num global start_time target = PushTool.rand_all(domain) before = PushTool.rand_all(domain) headers = { 'User-Agent': PushTool.user_agent(), 'Referer': target, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com',
import requests from tools.push_tools import PushTool from urllib import parse success_code = 0 fail_code = 0 server = PushTool.https_target() cookie = PushTool.get_cookies() def https_push(domain): global success_code global fail_code url = '' while True: try: r = PushTool.rand_all(domain) i = PushTool.rand_all(domain) headers = { 'User-Agent': PushTool.user_agent(), 'Referer': r, 'Accept': '*/*', 'Connection': 'keep-alive', 'Host': 'sp0.baidu.com', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar
def bd_ping(num): global success_count global failure_count global start_time global target xml = """ <?xml version="1.0"?> <methodCall> <methodName>weblogUpdates.ping</methodName> <params> <param> <value><string>%s</string></value> </param><param><value><string>%s</string></value> </param> </params> </methodCall> """ while True: url = PushTool.rand_all(target) xml = xml.replace('%s', url) headers = { 'Accept': '*/*', 'Accept-Encoding': 'zh-CN,zh;q=0.9,en;q=0.8', 'Content-Type': 'text/xml', 'Connection': 'keep-alive', 'User-Agent': PushTool.user_agent(), 'Content-Length': str(len(xml)), 'Host': 'ping.baidu.com', 'Origin': 'http://ping.baidu.com', 'Referer': 'http://ping.baidu.com/ping.html' } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar code = 404 try: res = conn.post('http://ping.baidu.com/ping/RPC2', headers=headers, json=xml, timeout=3.0) code = res.status_code if code == 200: if '<int>0</int>' in res.text: success_count += 1 else: failure_count += 1 else: failure_count += 1 except: traceback.print_exc() failure_count += 1 this_time = datetime.now() spend = this_time - start_time if int(spend.seconds) == 0: speed_sec = success_count / 1 else: speed_sec = success_count / int(spend.seconds) speed_day = float('%.2f' % ((speed_sec * 60 * 60 * 24) / 10000000)) percent = success_count / (failure_count + success_count) * 100 sys.stdout.write(' ' * 100 + '\r') sys.stdout.flush() print(url) sys.stdout.write( '%s 成功%s 预计(day/千万):%s M 成功率:%.2f%% 状态码:%s\r' % (datetime.now(), success_count, speed_day, percent, code)) sys.stdout.flush()
from tools.push_tools import PushTool import requests from requests.exceptions import ConnectionError from datetime import datetime from random import choice, randint from json.decoder import JSONDecodeError all_site = PushTool.get_all_site() def send_pkg_url(thread_num): while True: domain = 'mip-cache-%s.' % PushTool.random_chars(8) + choice(all_site) # static = 'mip-cache-%s.' % randint(1000, 2000) + 'aienao.com' # static = 'www.' + choice(all_site) # static = 'www1.' + 'aienao.com' url = '' for x in range(0, 100): url += PushTool.rand_all(domain) + '\n' url = url.strip('\n') headers = { 'User-Agent': 'curl/7.12.1', 'Host': 'data.zz.baidu.com', 'Content-Type': 'text/plain', 'Content-Length': str(len(url)), } target_url = 'http://data.zz.baidu.com/urls?site=%s&token=F5KnjXlVWrKS3MFm&type=mip' % domain try: requests.post(target_url, data=url, headers=headers) response = requests.post(target_url, data=url, headers=headers) print(datetime.now(), response.json(), domain)
def bd_manual(num): global success_count global failure_count global start_time global target while True: url = PushTool.rand_all(target) data = 'url=%s' % parse.quote_plus(url) headers = { 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', 'Content-Length': str(len(data)), 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Host': 'ziyuan.baidu.com', 'Origin': 'https://ziyuan.baidu.com', 'Referer': 'https://ziyuan.baidu.com/linksubmit/url', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', 'X-Request-By': 'baidu.ajax', 'X-Requested-With': 'XMLHttpRequest', } conn = requests.Session() conn.headers = headers # print(headers) # 将cookiesJar赋值给会话 cookie = { 'BIDUPSID': '358AB784CA9B61AE0BB262CA5B63C31F', 'PSTM': '1543830159', 'BAIDUID': '10F2B0EDBCCA246B1096F100C2D54A10:FG=1', 'H_PS_PSSID': '1433_21118_26350_27508', 'Hm_lvt_6f6d5bc386878a651cb8c9e1b4a3379a': '1543888479', 'lastIdentity': 'PassUserIdentity', 'SIGNIN_UC': '70a2711cf1d3d9b1a82d2f87d633bd8a02939879255', 'delPer': '0', 'PSINO': '7', 'locale': 'zh', '__cas__rn__': '293987925', 'BDUSS': 'nU1fmdmVU92SThBRU8tNDQ0T3RxcFd3Zjhoa2g1cVdwZGZXYUxNeTZycHcyQzVjQVFBQUFBJCQAAAAAAAAAAAEAAABmn' 'im80rvJ-tK7ysDWwtS2NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBL' 'B1xwSwdcQ', 'SITEMAPSESSID': 'iope24msj5s1rfcu9qlpmdv5l4', 'Hm_lpvt_6f6d5bc386878a651cb8c9e1b4a3379a':'1543981941', } cookiesJar = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True) conn.cookies = cookiesJar code = 404 try: res = conn.post('https://ziyuan.baidu.com/linksubmit/urlsubmit', headers=headers, data=data, timeout=3.0) code = res.status_code if code == 200: if '{"over":0,"status":0}' in res.text: success_count += 1 else: failure_count += 1 else: failure_count += 1 except: traceback.print_exc() failure_count += 1 this_time = datetime.now() spend = this_time - start_time if int(spend.seconds) == 0: speed_sec = success_count / 1 else: speed_sec = success_count / int(spend.seconds) speed_day = float('%.2f' % ((speed_sec * 60 * 60 * 24) / 10000000)) percent = success_count / (failure_count + success_count) * 100 sys.stdout.write(' ' * 100 + '\r') sys.stdout.flush() print(url) sys.stdout.write( '%s 成功%s 预计(day/千万):%s M 成功率:%.2f%% 状态码:%s\r' % ( datetime.now(), success_count, speed_day, percent, code)) sys.stdout.flush()
def add_random_site(site, cookie): """ :param site: :param cookie: :return: """ url = '' main_site = str(site).lstrip('www.') for x in range(0, 10): url = url + 'mipcdn-%s.%s\n' % (PushTool.random_chars(8), main_site) site_urls = url.split('\n') url = url.strip('\n') url = url.replace('\n', '%0A') data = 'site=%s&urls=%s' % (site, url) # print(data) ua = PushTool.user_agent() # print(ua) headers = { 'Host': 'ziyuan.baidu.com', 'Connection': 'keep-alive', 'Content-Length': str(len(data)), 'Accept': 'application/json, text/javascript, */*; q=0.0', 'Origin': 'https://ziyuan.baidu.com', 'X-Requested-With': 'XMLHttpRequest', 'X-Request-By': 'baidu.ajax', 'User-Agent': ua, 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Referer': 'https://ziyuan.baidu.com/site/batchadd', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Cookie': cookie } try: # proxy = get_proxy().get("proxy") response = requests.post( url='https://ziyuan.baidu.com/site/batchaddSubmit', headers=headers, data=data, timeout=30, # verify=False, # proxies={"http": "http://{}".format(proxy)} ) print(response.status_code, response.content) if response.status_code == 200: result = response.json() try: if int(result['status']) == -2: print('添加数量超过上限,请调整后重新提交。', datetime.now().strftime('%a %b %d %H:%M:%S %Y')) return False elif int(result['status']) == -1: print('添加数量超过上限,同一主站下可批量添加1000个子站,请调整后重新提交。', datetime.now().strftime('%a %b %d %H:%M:%S %Y')) return False except KeyError: pass for line in result['errList']: if int(line['status']) == 4: print('添加网站--', line['url'], '--重复', datetime.now().strftime('%a %b %d %H:%M:%S %Y')) elif int(line['status']) == 2: print('添加网站--', line['url'], '--DNS解析失败,网站不存在', datetime.now().strftime('%a %b %d %H:%M:%S %Y')) elif int(line['status']) == 0: print('添加网站--', line['url'], '--成功', datetime.now().strftime('%a %b %d %H:%M:%S %Y')) elif int(line['status']) == -2: print('添加网站--', line['url'], '--添加数量超过上限', datetime.now().strftime('%a %b %d %H:%M:%S %Y')) else: print('添加网站--', line['url'], '--异常', datetime.now().strftime('%a %b %d %H:%M:%S %Y')) return site_urls else: return None except ConnectionError: # print('服务器断开连接。。。') return None except ReadTimeout: # print('服务器连接超时。。。') return None
from threadpool import ThreadPool, makeRequests from configparser import ConfigParser from tools.push_tools import PushTool config = ConfigParser() config.read('push_config.ini', 'utf-8') https = int(config.get('bd_push', 'https')) thread_num = int(config.get('bd_push', 'thread')) target = config.get('bd_push', 'target') url_list = [] for line in range(1, 10000): url_list.append(PushTool.rand_all(target)) if https == 1: from mylib.https_push import https_push pool = ThreadPool(thread_num) arg = [] for x in range(0, thread_num): arg.append(url_list) request = makeRequests(https_push, arg) [pool.putRequest(req) for req in request] pool.wait() elif https == 0: from mylib.new_push import http_push pool = ThreadPool(thread_num) arg = [] for x in range(0, thread_num): arg.append(url_list) request = makeRequests(http_push, arg) [pool.putRequest(req) for req in request] pool.wait()
def http_push(url_list): while True: global success_num global failure_num global start_time referer = choice(url_list) r = choice(url_list) # print(referer, r) headers = { 'User-Agent': PushTool.user_agent(), 'Referer': referer, 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Connection': 'keep-alive', 'Host': 'api.share.baidu.com', } proxy = PushTool.get_proxy() # proxy = b'' if isinstance(proxy, bytes): proxy = proxy.decode('utf8') proxies = {"http": "http://{proxy}".format(proxy=proxy)} payload = {'l': referer, 'r': r} code = 404 url = '' temp = 0 while temp < 2: try: r = parse.quote_plus(r) url = 'http://api.share.baidu.com/s.gif?r=%s&l=%s' % (r, referer) res = requests.get(url, params=payload, timeout=10, headers=headers, proxies=proxies) # res = requests.get(url, params=payload, timeout=10, headers=headers) code = res.status_code url = parse.unquote(res.url) if code == 200: if url == 'http://www.baidu.com/search/error.html': failure_num += 1 else: success_num += 1 else: failure_num += 1 except: # traceback.print_exc() failure_num += 1 this_time = datetime.now() spend = this_time - start_time if int(spend.seconds) == 0: speed_sec = success_num / 1 else: speed_sec = success_num / int(spend.seconds) speed_day = float('%.2f' % ((speed_sec * 60 * 60 * 24) / 10000000)) percent = success_num / (failure_num + success_num) * 100 sys.stdout.write(' ' * 100 + '\r') sys.stdout.flush() print(referer, code, proxy) # sys.stdout.write( # '%s 成功%s 预计(day/千万):%s M 成功率:%.2f%% 状态码:%s \r' # % (datetime.now(), success_num, speed_day, percent, code)) sys.stdout.write( '%s 成功%s 预计(day/千万):%s M 成功率:%.2f%% 状态码:%s\r' % (datetime.now(), success_num, speed_day, percent, code)) temp += 1