89 lines
3.2 KiB
Markdown
89 lines
3.2 KiB
Markdown
# Multi-Site Sign-Up Automation Script
|
|
|
|
This script automates the process of signing up for multiple websites using a single configuration file. It is designed to be flexible and resilient, using advanced techniques to mimic human behavior.
|
|
|
|
---
|
|
|
|
## How It Works
|
|
|
|
The script reads its configuration from the `config.toml` file. It launches a browser using your real user profile to avoid bot detection, and then iterates through the list of sites you've defined, filling out and submitting the sign-up forms.
|
|
|
|
---
|
|
|
|
## Configuration (`config.toml`)
|
|
|
|
This is the main file you will edit to control the script. It has the following sections:
|
|
|
|
### 1. `[browser]` Section
|
|
|
|
This section controls the browser's behavior.
|
|
|
|
- `userDataDir` (Required): The absolute path to your Chrome/Chromium user profile. This is critical for avoiding bot detection.
|
|
- `userAgent` (Optional): A string to make the browser appear as a specific version (e.g., a Windows machine). If left blank, a random user agent is used.
|
|
|
|
**Example:**
|
|
```toml
|
|
[browser]
|
|
userDataDir = "/home/someone/.config/chromium"
|
|
userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
|
|
```
|
|
|
|
### 2. `[global_credentials]` Section
|
|
|
|
Define a default set of credentials here. The script will use these for any site that does not have its own specific credentials defined.
|
|
|
|
- `username`
|
|
- `email`
|
|
- `password`
|
|
- `age` (or any other custom field)
|
|
|
|
**Example:**
|
|
```toml
|
|
[global_credentials]
|
|
username = "MyGlobalUsername"
|
|
email = "my.global.email@gmail.com"
|
|
password = "MyGlobalPassword123!"
|
|
age = "28"
|
|
```
|
|
|
|
### 3. `[[sites]]` Blocks
|
|
|
|
Each site you want to process is defined in its own `[[sites]]` block.
|
|
|
|
- `name`: A unique name for the site (e.g., "CameraBoys").
|
|
- `category`: An organizational tag (e.g., "Social", "Financial").
|
|
- `url`: The direct URL to the sign-up page.
|
|
- `needsPreSubmitAction`: Set to `true` for sites that have a GDPR/cookie popup. Currently, this is only configured for "CameraBoys".
|
|
|
|
#### `[sites.locators]` Subsection
|
|
|
|
This is where you define the form fields for the site. The script will dynamically try to fill **any field you list here**.
|
|
|
|
- **Easy Mode:** Simply find the element in your browser's developer tools, right-click, "Copy element", and paste the entire HTML tag as the value.
|
|
- **Advanced Mode:** You can also use a standard CSS selector.
|
|
|
|
**Supported Fields:** `username`, `password`, `email`, `confirmEmail`, `age`, or any other custom field.
|
|
*Note: For `confirmEmail`, the script will automatically use the `email` value.*
|
|
|
|
**Example:**
|
|
```toml
|
|
[sites.locators]
|
|
email = '<input id="23510" class="required email" name="23510" type="text">'
|
|
confirmEmail = '<input id="confirmEmail" class="email required" name="confirmEmail" type="text">'
|
|
age = '#user_age' # You can still use CSS selectors
|
|
submit = '<button type="submit">Subscribe</button>'
|
|
```
|
|
|
|
#### `[sites.credentials]` Subsection (Optional)
|
|
|
|
If a site requires a unique login, you can define it here. This will **override** the `[global_credentials]` for this site only.
|
|
|
|
**Example:**
|
|
```toml
|
|
[sites.credentials]
|
|
username = "SiteSpecificUser"
|
|
email = "site.specific.email@gmail.com"
|
|
password = "SitePassword789"
|
|
age = "42"
|
|
```
|