Spaces:
Running
Running
| import gradio as gr | |
| import requests | |
| import random | |
| import threading | |
| import time | |
| import random | |
| import urllib.parse | |
| # List of URLssssssssssa | |
| urls = [ | |
| "https://ntmtmp.xyz/forme.php", | |
| ] | |
| #session_id = random.randint(1000, 9999) | |
| # List of Geos | |
| geos = ["us", "us", "us", "us", "us", "us", "uk", "ca", "ca", "uk", "us", "us", "us", "us", "us", "us", "us", "us", "us", "us"] | |
| API_TOKEN = "96841d8751464ad5bbbc99412b750740ab2dd989bf2" | |
| # Background function for scraping | |
| def start_scraping(loop_interval=10): | |
| def scrape_loop(): | |
| while True: | |
| target_url = random.choice(urls) | |
| encoded_url = urllib.parse.quote(target_url) | |
| geo = random.choice(geos) | |
| api_url = f"http://api.scrape.do/?url={encoded_url}&token={API_TOKEN}&super=true&geoCode={geo}&render=true&waitUntil=load&customWait=4000&width=1920&height=1080&returnJSON=true&blockResources=false&screenShot=true&playWithBrowser=%5B%7B%22Action%22%3A%22Wait%22%2C%22Timeout%22%3A1000%7D%2C%7B%22Action%22%3A%22Click%22%2C%22Selector%22%3A%22%23accept-btn%22%7D%2C%7B%22Action%22%3A%22Click%22%2C%22Selector%22%3A%22button%22%7D%2C%7B%22Action%22%3A%22Wait%22%2C%22Timeout%22%3A1000%7D%2C%7B%22Action%22%3A%22Click%22%2C%22Selector%22%3A%22button%22%7D%2C%7B%22Action%22%3A%22Wait%22%2C%22Timeout%22%3A12000%7D%2C%7B%22Action%22%3A%22Click%22%2C%22Selector%22%3A%22%23button_id%22%7D%2C%7B%22Action%22%3A%22Wait%22%2C%22Timeout%22%3A10000%7D%2C%7B%22Action%22%3A%22WaitSelector%22%2C%22WaitSelector%22%3A%22%23btn%22%2C%22Timeout%22%3A1000%7D%2C%7B%22Action%22%3A%22ScrollX%22%2C%22Value%22%3A100%7D%2C%7B%22Action%22%3A%22ScrollY%22%2C%22Value%22%3A100%7D%2C%7B%22Action%22%3A%22Wait%22%2C%22Timeout%22%3A11000%7D%2C%7B%22Action%22%3A%22Click%22%2C%22Selector%22%3A%22%23button_id%22%7D%2C%7B%22Action%22%3A%22Click%22%2C%22Selector%22%3A%22%23button_id%22%7D%2C%7B%22Action%22%3A%22Wait%22%2C%22Timeout%22%3A9000%7D%2C%7B%22Action%22%3A%22ScrollX%22%2C%22Value%22%3A100%7D%2C%7B%22Action%22%3A%22WaitSelector%22%2C%22WaitSelector%22%3A%22%23btn%22%2C%22Timeout%22%3A1000%7D%2C%7B%22Action%22%3A%22Wait%22%2C%22Timeout%22%3A7000%7D%5D" | |
| try: | |
| response = requests.get(api_url) | |
| print(f"--- Geo: {geo} | URL: {target_url} ---") | |
| print(response.text[:500], "\n") # Print first 500 chars to avoid huge output | |
| except Exception as e: | |
| print("Error:", e) | |
| time.sleep(loop_interval) # Wait before next iteration | |
| threading.Thread(target=scrape_loop, daemon=True).start() | |
| return "Scraping started in background!" | |
| # Gradio interface | |
| iface = gr.Interface( | |
| fn=start_scraping, | |
| inputs=gr.Number(label="Loop Interval (seconds)", value=10), | |
| outputs="text", | |
| title="Background Web Scraper" | |
| ) | |
| iface.launch() |