Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -8,6 +8,13 @@ PROFILE = "/tmp/uc-profile"
|
|
| 8 |
UA = os.getenv("UA", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36")
|
| 9 |
CHROME_BIN = os.getenv("CHROME_BIN", "/usr/bin/chromium")
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
app = FastAPI()
|
| 12 |
drv = None
|
| 13 |
queue = None
|
|
@@ -16,11 +23,25 @@ worker = None
|
|
| 16 |
class OpenPayload(BaseModel):
|
| 17 |
url: HttpUrl
|
| 18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
async def _worker():
|
| 20 |
while True:
|
| 21 |
url = await queue.get()
|
| 22 |
try:
|
| 23 |
await asyncio.to_thread(drv.get, url)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
print("[open] done", url)
|
| 25 |
finally:
|
| 26 |
queue.task_done()
|
|
|
|
| 8 |
UA = os.getenv("UA", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36")
|
| 9 |
CHROME_BIN = os.getenv("CHROME_BIN", "/usr/bin/chromium")
|
| 10 |
|
| 11 |
+
SIGNS = (
|
| 12 |
+
"/sorry/", "consent.google.com", "detected unusual traffic",
|
| 13 |
+
"unusual traffic", "to continue, please verify", "recaptcha",
|
| 14 |
+
"g-recaptcha", "hcaptcha", "i'm not a robot", "are you a robot",
|
| 15 |
+
"ระบบของเราตรวจพบการรับส่งข้อมูลผิดปกติ", "ยืนยันว่าคุณไม่ใช่โปรแกรมอัตโนมัติ"
|
| 16 |
+
)
|
| 17 |
+
|
| 18 |
app = FastAPI()
|
| 19 |
drv = None
|
| 20 |
queue = None
|
|
|
|
| 23 |
class OpenPayload(BaseModel):
|
| 24 |
url: HttpUrl
|
| 25 |
|
| 26 |
+
def _check_captcha():
|
| 27 |
+
u = (drv.current_url or "").lower()
|
| 28 |
+
t = (drv.title or "").lower()
|
| 29 |
+
h = (drv.page_source or "")[:2000].lower()
|
| 30 |
+
for s in SIGNS:
|
| 31 |
+
if s in u or s in t or s in h:
|
| 32 |
+
return True, s
|
| 33 |
+
return False, ""
|
| 34 |
+
|
| 35 |
async def _worker():
|
| 36 |
while True:
|
| 37 |
url = await queue.get()
|
| 38 |
try:
|
| 39 |
await asyncio.to_thread(drv.get, url)
|
| 40 |
+
bad, sig = _check_captcha()
|
| 41 |
+
if bad:
|
| 42 |
+
print("[check] captcha=True", {"url": drv.current_url, "sig": sig})
|
| 43 |
+
else:
|
| 44 |
+
print("[check] captcha=False", {"url": drv.current_url, "title": drv.title[:80] if drv.title else ""})
|
| 45 |
print("[open] done", url)
|
| 46 |
finally:
|
| 47 |
queue.task_done()
|