Folders and files Β
Β
Β
Β
Β
Β
View all files
Repository files navigation π Core Tools (with Explanations)
Selenium β Stable and widely supported automation tool, best with undetected-chromedriver to evade bot detection.
Playwright β More modern, supports native waits and browser context isolation. Async-based, recommended for more advanced scripting. β
Non-headless Execution β Running in full browser mode is crucial when solving CAPTCHAs manually and simulating human behavior.
Dynamic Engine Switching β Architect the system to allow switching between Selenium and Playwright easily, for flexibility and testing.
π Recommended Libraries (with Tips)
selenium / undetected-chromedriver: Avoid detection by using undetected Chrome variants.
playwright / playwright-stealth: Stealth plugin reduces fingerprinting; built-in waits reduce need for sleep().
pandas: Easy Excel reading/writing with tabular data.
openpyxl: Used by pandas under the hood for .xlsx, allows appending without data loss.
selenium-wire: Useful for intercepting traffic or adding proxies dynamically to Selenium.
fake-useragent / random-user-agent: Helps cycle realistic user-agents to avoid being flagged.
human-cursor: Simulates smooth mouse movements like a human would make, to defeat bot detection.
tenacity: Retry operations with exponential backoff. Essential for stability and resilience.
logging: Use Pythonβs built-in logging to trace sessions, errors, proxy failures, etc.
π§© Modular Architecture (Detailed Breakdown)
Configuration Module: config.py should manage all paths, constants, toggles, proxies, user-agent lists.
Data Loader: Loads name/email/phone lists from .txt or .csv, with deduplication logic.
Proxy Manager: Either from a file or API. It should return a new proxy per account creation.
Browser Controller: Initializes browser session, applies stealth, opens tab, passes to Form Filler.
Form Filler: Implements site-specific logic (Page Object Model suggested). Fills all fields, waits for UI transitions.
Captcha Handler: Detects CAPTCHA presence and waits for manual solving (input("Solve captcha then press Enter")).
Output Writer: Uses pandas to append rows to Excel or create it if not present.
Logger: Central logging class. Capture events like proxy failures, timeouts, success cases.
Main Runner: Iterates through dataset, applies proxy, solves form, logs result, moves to next.
π Stealth & Evasion (Anti-Bot Best Practices)
Rotate User-Agent β Change browser fingerprint per session.
Inject Proxies β Use residential or mobile proxies if possible. Rotate each session.
Simulate Human Behavior:
Use ActionChains in Selenium or mouse.move() in Playwright.
Add random typing delays, scrolling, hovering.
Randomized Delays β Sleep for 1β3 seconds randomly between actions. Avoid exact timing.
Avoid Fingerprinting β Avoid WebDriver signatures, disable headless flags, and spoof common attributes (navigator.webdriver, etc).
π‘οΈ Robustness (Resilience & Recovery)
Try/Except Wrapping β Wrap element clicks, page loads, input typing in try blocks.
Retry on Failures β Use tenacity to retry failed elements with wait_random_exponential().
Log Failures β Record what failed, on which step, with timestamp.
Continue on Error β Even if one account fails, the script should continue.
π€ Excel Output (Best Practices)
Append Mode β Use if file.exists: append, else create new.
Avoid Overwrite β Never drop existing Excel rows unless explicitly asked.
Separate Sheet for Errors β Log all failed sessions in failures.xlsx or a second sheet like Sheet2.
βοΈ Future Improvements
CAPTCHA Solver β Add support for external solving (e.g., 2Captcha, Anti-Captcha) via API for full automation.
GUI β A simple Tkinter or PyQt GUI can help trigger runs manually.
Dockerization β Encapsulate the script for consistent environment and deployment.
Database Support β Replace Excel with a SQL database if scaling up.# OutlookMakerPro
About
OutlookMakerPro
Resources
Stars
Watchers
Forks
You canβt perform that action at this time.