Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ListersForm - Form Auto-Submission Tool

A Windows-based, local Chrome-controlled form auto-submission tool for automating inquiry form submissions with strict safety and compliance features.

🎯 Features

Core Functionality

  • Automatic Form Detection: Intelligently finds and identifies inquiry/contact forms on websites
  • Smart Form Filling: Automatically fills forms with predefined company data
  • Multi-Step Support: Handles input → confirm → submit workflows
  • NG Phrase Detection: Automatically skips sites with prohibited phrases (営業禁止, etc.)
  • CAPTCHA Detection: Detects and skips sites with CAPTCHA (bypass NOT allowed)
  • Duplicate Prevention: Optionally skips previously successful URLs

User Interface

  • Modern GUI: Clean, dark-mode interface built with CustomTkinter
  • Real-Time Logging: Live execution log showing all actions and results
  • Progress Tracking: Visual progress bar and statistics (success/failed/skipped)
  • Configuration Modal: Easy-to-use settings configuration
  • Message Editor: Full-featured editor for form data and message templates
  • Left Sidebar: Quick access to all controls and file loading

Safety & Compliance

  • Strict Selection Rules: Only selects "その他" for inquiry type dropdowns
  • Email-Only Contact: Never selects phone contact methods
  • Legal Safety: Automatically skips sites with legal warning phrases
  • No CAPTCHA Bypass: Detects but never attempts to bypass CAPTCHA
  • Complete Audit Trail: All actions logged to CSV with timestamps

Advanced Features

  • Message Tag System: Use 【company】 tag for per-site customization
  • Time Restrictions: Optional execution time windows (e.g., 9:00-18:00 only)
  • Day Restrictions: Optional day-of-week restrictions (e.g., skip weekends)
  • Direct Mode: Treat target URL as inquiry page directly (no auto-discovery)
  • Headless Mode: Run Chrome in background without visible window
  • Parallel Processing: Support for 1-8 parallel instances (default: 1)

📋 Requirements

  • OS: Windows 10/11
  • Browser: Google Chrome (latest stable)
  • Python: 3.8 or higher

🚀 Installation

1. Install Python Dependencies

# Activate virtual environment (if not already activated)
.\.venv\Scripts\activate

# Install required packages
pip install -r requirements.txt

2. Install Google Chrome

Make sure Google Chrome is installed on your system. The tool will automatically download the appropriate ChromeDriver.

3. Build EXE File (Optional)

To create a standalone executable file (.exe) that can run without Python:

# Activate virtual environment
.\.venv\Scripts\activate

# Run build script
.\build_exe.bat

Or use the simple build script:

.\build_exe_simple.bat

The EXE file will be created in the dist folder: dist\ListersForm.exe

Note:

  • The EXE file runs in headless mode by default (Chrome window is not displayed)
  • You can change this in the GUI settings after launching the EXE
  • ChromeDriver will be automatically downloaded on first run, or you can place chromedriver.exe in the same folder as the EXE

For detailed instructions, see BUILD_EXE_GUIDE.md.

📖 Usage

Starting the Application

# From project directory
python main_gui.py

Or use the provided launcher:

.\start.bat

Basic Workflow

  1. Load Target CSV

    • Click "Load CSV" in the sidebar
    • Select your CSV file with target URLs
    • Column A: Target URL (required)
    • Column B: Optional per-site message (optional)
  2. Configure Form Data

    • Click "Edit Form Data & Message"
    • Fill in company information (required fields marked with *)
    • Edit the common message template
    • Use 【company】 tag for dynamic replacement
    • Click "Save"
  3. Configure Settings (Optional)

    • Click "Configuration"
    • Set direct mode, headless mode, parallel count, etc.
    • Configure time/day restrictions if needed
    • Enable duplicate prevention if desired
    • Click "Save"
  4. Start Automation

    • Click "Start" button
    • Monitor progress in real-time log
    • View statistics in sidebar
  5. Control Execution

    • Pause/Resume: Temporarily pause execution
    • Stop: Stop after current site completes
  6. Review Results

    • Results automatically saved to CSV: ツール実行結果_YYYYMMDDhhmmss.csv
    • Contains: Target URL, Result, Reason, Inquiry URL, Timestamp, Message Used

📁 CSV/Excel Format

ListersForm supports two input formats for maximum flexibility:

Format 1: Old CSV Format (Backward Compatible)

Simple 2-column format:

https://example.com,株式会社Example
https://example2.com,
https://example3.com,エグザンプル商事

Column A: Target URL (required) Column B: Custom company name (optional - replaces 【company】 tag)

Format 2: New Enhanced Format (CSV or Excel)

Recommended for large-scale operations with per-company customization

Sheet 1: Company Data

Column 1 Column 2 Column 3 Column 4 Column 5
Inquiry URL (required) Secondary URL (optional) Company Name (optional) Recipient Name (optional) Custom Message (optional)

Example CSV:

https://example.com/contact,,株式会社Example,山田太郎,貴社のサービスについてお問い合わせです。
https://example2.com/inquiry,https://example2.com/form,株式会社Example2,佐藤花子,製品に興味があります。
https://example3.com/contact,,,田中一郎,ご連絡差し上げました。

Sheet 2: Common Form Data (Excel only, optional)

For Excel files (.xlsx, .xls), you can add a second sheet with common form information:

Key Value
メールアドレス info@example.com
電話番号 03-1234-5678
部署 営業部
会社URL https://www.example.com
郵便番号 100-0001
都道府県 東京都
市区町村 千代田区

Data Priority:

  1. Company-specific data (Sheet 1, columns 3-5)
  2. Common data (Sheet 2, Excel only)
  3. GUI configured data

Supported File Types:

  • CSV files (*.csv)
  • Excel files (*.xlsx, *.xls)

See EXCEL_FORMAT_GUIDE.md for detailed format specification and examples.

Output CSV Format

The tool generates a timestamped CSV file with the following columns:

Column Description
Target URL Original URL from input CSV
Result Success / Failed / Skipped
Reason Detailed reason for result
Inquiry URL Actual inquiry page URL detected
Timestamp Execution timestamp
Message Used First 100 chars of submitted message

⚙️ Configuration Options

Direct Mode

  • Enabled: Treats target URL as inquiry page directly (no auto-discovery)
  • Disabled: Automatically searches for inquiry links on target page

Headless Mode

  • Enabled: Runs Chrome in background (no visible window)
  • Disabled: Shows Chrome window during execution

Parallel Processing

  • Range: 1-8 instances
  • Default: 1 (recommended for safety)
  • Note: Higher values increase speed but also CPU/memory usage

Duplicate Prevention

  • Enabled: Skips URLs previously processed successfully
  • Disabled: Processes all URLs regardless of history

Time Restrictions

  • Set start and end times (e.g., 21:00-07:00)
  • Tool pauses during restricted hours

Day Restrictions

  • Select days to skip (e.g., Saturday, Sunday)
  • Tool pauses on restricted days

🔍 Form Field Mapping

The tool automatically detects and fills fields based on common patterns:

Field Type Detection Keywords
Company Name 会社名, 企業名, company, organization
Department 部署, 部門, department
Last Name 姓, 名字, lastname
First Name 名, firstname
Email メール, email, e-mail
Phone 電話, tel, phone
URL url, ホームページ, website
Postal Code 郵便番号, postal, zip
Prefecture 都道府県, prefecture
City 市区町村, city
Address 住所, address
Subject 件名, subject, title
Message 本文, 内容, message, inquiry

Special Field Rules

Inquiry Type Dropdown:

  • ONLY selects "その他" (Other)
  • If "その他" not found → SKIP SITE

Contact Method:

  • Prefers: メール, メールで回答希望, メールで連絡希望
  • NEVER selects telephone options

Source/Referral:

  • Prefers: 検索エンジン, 検索, Google

Privacy Checkbox:

  • Auto-checks checkboxes containing: 同意, プライバシー

🚫 NG Phrases (Auto-Skip)

The tool automatically skips sites containing these phrases:

Core Restrictions

  • 営業禁止, 営業不可, 営業お断り

Legal/Enforcement

  • 法的措置, 法的な処置, 法的手段, 法的対応
  • 特定電子メール, 送信の適正化

Sales Blocking

  • 広告宣伝, 一方的な営業, メールマガジン
  • 営業行為, 売り込み, 売込み, 売りこみ, セールス

❌ Failure Reasons

The tool provides explicit failure reasons:

Reason Description
Inquiry page not found Could not locate inquiry/contact page
CAPTCHA detected CAPTCHA present (bypass not allowed)
Validation error Form validation failed
Character limit exceeded Message too long for form
URL記載不可 URL input rejected by site
Required dropdown missing その他 Inquiry type dropdown lacks "その他"
Confirmation flow failed Multi-step confirmation process failed
NG phrase detected Site contains prohibited phrase
Duplicate URL URL already processed successfully
Unknown error Unexpected error occurred

📊 Monitoring & Logs

Real-Time Log

  • Shows all actions and decisions in real-time
  • Includes timestamps and detailed messages
  • Can be cleared during execution

Progress Bar

  • Visual indicator of completion percentage
  • Shows current/total count

Statistics Panel

  • Success: Successfully submitted forms
  • Failed: Failed submissions with reasons
  • Skipped: Sites skipped due to NG phrases or duplicates

Log Files

  • listerform.log: Detailed application log
  • Includes timestamps and error stack traces
  • Useful for debugging

🔒 Safety & Legal Compliance

What This Tool Does

✅ Automates legitimate business inquiries ✅ Respects site restrictions and warnings ✅ Provides complete audit trail ✅ Skips sites that prohibit business contact ✅ Detects but never bypasses CAPTCHA

What This Tool Does NOT Do

❌ Bypass CAPTCHA ❌ Ignore "no sales contact" warnings ❌ Force submissions on restricted sites ❌ Spoof browser fingerprints ❌ Send spam or unsolicited messages

Best Practices

  1. Use respectful, professional messages
  2. Only contact sites for legitimate business purposes
  3. Review NG phrase list and honor restrictions
  4. Monitor execution logs for any issues
  5. Manually review failed/skipped sites if needed

🛠️ Troubleshooting

Chrome Driver Issues

Problem: Chrome driver fails to start Solution:

  • Update Chrome to latest version
  • Delete .wdm folder in user directory
  • Reinstall with: pip install --upgrade webdriver-manager

CSV Encoding Issues

Problem: CSV with garbled characters Solution:

  • Save CSV as UTF-8 (with BOM) in Excel
  • Or use encoding: Shift-JIS or CP932

Form Not Detected

Problem: Inquiry form not found Solution:

  • Enable Direct Mode and use inquiry URL directly
  • Check if site uses non-standard form implementation
  • Review logs for specific error messages

CAPTCHA Blocking All Sites

Problem: Many sites have CAPTCHA Solution:

  • This is intentional - CAPTCHA bypass is not allowed
  • These sites require manual submission
  • Review output CSV for CAPTCHA sites list

Performance Issues

Problem: Slow execution Solution:

  • Enable Headless Mode for faster execution
  • Reduce parallel count if system is overloaded
  • Check network connection speed

📝 Message Tag System

Use 【company】 tag in your message template for dynamic replacement:

Template:

お世話になります。

【company】の山田と申します。
貴社のサービスに興味があり、ご連絡させていただきました。

With custom message (Column B = "株式会社Example"):

お世話になります。

株式会社Exampleの山田と申します。
貴社のサービスに興味があり、ご連絡させていただきました。

Without custom message (Column B empty):

お世話になります。

【company】の山田と申します。
貴社のサービスに興味があり、ご連絡させていただきました。

🏗️ Project Structure

ListerForm/
├── main_gui.py              # Main GUI application
├── automation_engine.py     # Core automation logic
├── chrome_controller.py     # Chrome/Selenium controller
├── form_detector.py         # Form detection and interaction
├── csv_handler.py          # CSV input/output handling
├── config.py               # Configuration constants
├── requirements.txt        # Python dependencies
├── README.md              # This file
├── start.bat              # Windows launcher script
├── sample_targets.csv     # Sample input CSV
└── listerform.log         # Application log file (created on run)

🤝 Support

For issues or questions:

  1. Check the troubleshooting section
  2. Review log files for error messages
  3. Verify CSV format and encoding
  4. Check Chrome version compatibility

📜 License

This tool is for legitimate business use only. Users are responsible for:

  • Compliance with local laws and regulations
  • Respecting website terms of service
  • Ensuring messages are appropriate and non-spam
  • Maintaining ethical business practices

⚠️ Disclaimer

This tool is provided as-is for legitimate business automation purposes. The developers are not responsible for:

  • Misuse of the tool for spam or unsolicited messages
  • Violations of website terms of service
  • Legal consequences of improper use
  • Any damages or issues arising from use

Always ensure your use complies with:

  • Japan's Act on Regulation of Transmission of Specified Electronic Mail
  • Website terms of service
  • General business ethics and practices

🔄 Version History

Version 1.0.0 (Initial Release)

  • Complete form automation system
  • Modern GUI with CustomTkinter
  • NG phrase detection
  • CAPTCHA detection (no bypass)
  • CSV input/output
  • Configuration system
  • Message editor
  • Real-time logging
  • Progress tracking
  • Time/day restrictions
  • Duplicate prevention

Built with Python, Selenium, and CustomTkinter For Windows 10/11 | Local Execution | Chrome-Based

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages