{"id":24380798,"url":"https://github.com/nayandas69/auto-website-visitor","last_synced_at":"2025-10-29T22:38:43.193Z","repository":{"id":272137849,"uuid":"874227957","full_name":"nayandas69/auto-website-visitor","owner":"nayandas69","description":"Auto Website Visitor: Automate website visits like a pro—cross-browser vibes, stealth mode, scheduler goals, and proxy ninja moves. Perfect for personal use. Let’s make browsing hella aesthetic!","archived":false,"fork":false,"pushed_at":"2025-07-17T00:51:36.000Z","size":199,"stargazers_count":30,"open_issues_count":1,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-24T18:54:52.190Z","etag":null,"topics":["auto-website-visitor","automation","headlessbrowser","python","webtesting","webtools"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nayandas69.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-17T13:16:08.000Z","updated_at":"2025-09-19T19:18:58.000Z","dependencies_parsed_at":"2025-02-27T17:58:14.298Z","dependency_job_id":"ceb49cd9-7821-447b-a958-49bb95bd8dc4","html_url":"https://github.com/nayandas69/auto-website-visitor","commit_stats":null,"previous_names":["nayandas69/auto-website-visitor"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/nayandas69/auto-website-visitor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayandas69%2Fauto-website-visitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayandas69%2Fauto-website-visitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayandas69%2Fauto-website-visitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayandas69%2Fauto-website-visitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nayandas69","download_url":"https://codeload.github.com/nayandas69/auto-website-visitor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nayandas69%2Fauto-website-visitor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281712991,"owners_count":26548727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auto-website-visitor","automation","headlessbrowser","python","webtesting","webtools"],"created_at":"2025-01-19T08:29:18.499Z","updated_at":"2025-10-29T22:38:43.181Z","avatar_url":"https://github.com/nayandas69.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Auto Website Visitor\r\n\r\nA powerful Python package for automated website visiting with advanced browser automation, scheduling capabilities, and comprehensive configuration options.\r\n\r\n\u003e \\[!CAUTION]\r\n\u003e This package is designed for legitimate testing and automation purposes. Ensure compliance with website terms of service and applicable laws.\r\n\r\n\u003e \\[!NOTE]\r\n\u003e This package is under active development. Features and APIs may change in future releases.\r\n\r\n![Workflow Status](https://img.shields.io/github/actions/workflow/status/nayandas69/auto-website-visitor/buildpypi.yml?style=flat-square\u0026color=4DB6AC\u0026logo=github)\r\n![Python Version](https://img.shields.io/pypi/pyversions/auto-website-visitor?style=flat-square\u0026color=42A5F5\u0026logo=python)\r\n![PyPI Version](https://img.shields.io/pypi/v/auto-website-visitor?style=flat-square\u0026color=00C853\u0026logo=pypi)\r\n![PyPI Downloads](https://static.pepy.tech/badge/auto-website-visitor) \r\n\r\n## Features\r\n\r\n- [x] **Multi-browser Support**: Chrome, Firefox, and Edge\r\n- [x] **Flexible Scheduling**: Interval-based and cron-based scheduling\r\n- [x] **Advanced Browser Options**: Headless mode, custom user agents, proxy support\r\n- [x] **Auto-Scrolling**: Simulate natural browsing behavior\r\n- [x] **Retry Logic**: Configurable retry attempts with delays\r\n- [x] **Comprehensive Logging**: Rotating logs with configurable levels\r\n- [x] **CLI Interface**: Interactive menu and command-line options\r\n- [x] **Configuration Files**: JSON and YAML support\r\n- [x] **Auto-Updates**: Built-in update mechanism\r\n- [x] **Environment Variables**: Support for sensitive configuration\r\n\r\n## Installation\r\n\r\n```bash\r\npip install auto-website-visitor\r\n```\r\n\r\n## Quick Start\r\n\r\n### Basic Usage\r\n\r\n```bash\r\n# Visit a website 5 times\r\nawv --url https://example.com --count 5\r\n\r\n# Use Firefox in headless mode with auto-scroll\r\nawv --url https://example.com --count 10 --browser firefox --headless --auto-scroll\r\n\r\n# Use proxy server\r\nawv --url https://example.com --count 5 --proxy 127.0.0.1:8080\r\n```\r\n\r\n### Interactive Mode\r\n\r\n```bash\r\nawv --interactive\r\n```\r\n\r\n### Using Configuration Files\r\n\r\nCreate a sample configuration file:\r\n\r\n```bash\r\nawv create-config --config-path config.yaml\r\n```\r\n\r\nExample configuration (`config.yaml`):\r\n\r\n```yaml\r\nurl: https://example.com\r\nvisit_count: 5\r\ninterval: 10\r\nbrowser: chrome\r\nheadless: true\r\nauto_scroll: true\r\nscroll_pause: 1.0\r\nmax_scroll: 3\r\nrandom_delay: true\r\ndelay_range: [2, 8]\r\nproxy: 127.0.0.1:8080\r\nretry_attempts: 3\r\nretry_delay: 5\r\nlog_level: INFO\r\nlog_file: visitor.log\r\n```\r\n\r\nRun with configuration:\r\n\r\n```bash\r\nawv --config config.yaml\r\n```\r\n\r\n### Scheduled Execution\r\n\r\n#### Interval-based Scheduling\r\n\r\n```bash\r\n# Run every hour\r\nawv --url https://example.com --schedule \"1h\" --headless\r\n\r\n# Run every 30 minutes\r\nawv --url https://example.com --schedule \"30m\" --headless\r\n\r\n# Run every 45 seconds\r\nawv --url https://example.com --schedule \"45s\" --headless\r\n```\r\n\r\n#### Cron-based Scheduling\r\n\r\n```bash\r\n# Run every 30 minutes\r\nawv --url https://example.com --schedule \"*/30 * * * *\" --headless\r\n\r\n# Run weekdays at 9 AM\r\nawv --url https://example.com --schedule \"0 9 * * 1-5\" --headless\r\n\r\n# Run every hour during business hours\r\nawv --url https://example.com --schedule \"0 9-17 * * 1-5\" --headless\r\n```\r\n\r\n## Configuration Options\r\n\r\n### Core Settings\r\n\r\n- `url`: Target website URL (required)\r\n- `visit_count`: Number of visits to perform (default: 1)\r\n- `interval`: Seconds between visits (default: 5)\r\n- `timeout`: Page load timeout in seconds (default: 30)\r\n\r\n### Browser Options\r\n\r\n- `browser`: Browser to use - chrome, firefox, or edge (default: chrome)\r\n- `headless`: Run browser in headless mode (default: false)\r\n- `user_agent`: Custom user agent string\r\n- `proxy`: Proxy server (format: \"ip:port\" or \"user:pass@ip:port\")\r\n\r\n### Behavior Settings\r\n\r\n- `auto_scroll`: Enable automatic page scrolling (default: false)\r\n- `scroll_pause`: Pause between scroll actions in seconds (default: 0.5)\r\n- `max_scroll`: Maximum number of scroll actions (default: 5)\r\n- `random_delay`: Enable random delays between actions (default: false)\r\n- `delay_range`: Range for random delays in seconds (default: [1, 5])\r\n\r\n### Scheduler Settings\r\n\r\n- `schedule_enabled`: Enable scheduled execution (default: false)\r\n- `schedule_type`: Schedule type - interval or cron (default: interval)\r\n- `schedule_value`: Schedule value (e.g., \"1h\", \"*/30 * * * *\")\r\n\r\n### Advanced Options\r\n\r\n- `retry_attempts`: Number of retry attempts on failure (default: 3)\r\n- `retry_delay`: Delay between retry attempts in seconds (default: 5)\r\n- `log_level`: Logging level - DEBUG, INFO, WARNING, ERROR (default: INFO)\r\n- `log_file`: Log file path (default: auto_visitor.log)\r\n- `log_rotate`: Enable log rotation (default: true)\r\n- `max_log_size`: Maximum log file size (default: 1MB)\r\n- `backup_count`: Number of backup log files (default: 3)\r\n\r\n## Environment Variables\r\n\r\nSet sensitive configuration via environment variables:\r\n\r\n```bash\r\nexport PROXY_USER=\"username\"\r\nexport PROXY_PASS=\"password\"\r\nexport CUSTOM_HEADERS='{\"Authorization\": \"Bearer token123\"}'\r\n```\r\n\r\n## CLI Commands\r\n\r\n### Main Command\r\n\r\n```bash\r\nawv [OPTIONS]\r\n```\r\n\r\n### Available Options\r\n\r\n- `--url, -u`: Target website URL\r\n- `--count, -c`: Number of visits\r\n- `--interval, -i`: Seconds between visits\r\n- `--browser, -b`: Browser choice (chrome/firefox/edge)\r\n- `--headless`: Run in headless mode\r\n- `--user-agent`: Custom user agent\r\n- `--proxy`: Proxy server\r\n- `--auto-scroll`: Enable auto-scrolling\r\n- `--random-delay`: Enable random delays\r\n- `--config`: Configuration file path\r\n- `--schedule`: Schedule expression\r\n- `--interactive`: Interactive mode\r\n- `--log-level`: Logging level\r\n- `--version`: Show version\r\n\r\n### Subcommands\r\n\r\n```bash\r\n# Create sample configuration file\r\nawv create-config --config-path config.yaml\r\n\r\n# Check for updates\r\nawv update\r\n```\r\n\r\n## Python API\r\n\r\nUse Auto Website Visitor programmatically:\r\n\r\n```python\r\nfrom auto_website_visitor import AutoWebsiteVisitor, VisitorSettings\r\n\r\n# Create settings\r\nsettings = VisitorSettings(\r\n    url=\"https://example.com\",\r\n    visit_count=5,\r\n    browser=\"chrome\",\r\n    headless=True,\r\n    auto_scroll=True\r\n)\r\n\r\n# Run visitor\r\nvisitor = AutoWebsiteVisitor(settings)\r\nsuccess = visitor.run()\r\n\r\n# Get statistics\r\nstats = visitor.get_stats()\r\nprint(f\"Success rate: {stats['success_rate']:.1f}%\")\r\n```\r\n\r\n### Scheduled Execution\r\n\r\n```python\r\nfrom auto_website_visitor import AutoWebsiteVisitor, VisitorSettings, SchedulerManager\r\nfrom auto_website_visitor.logger import VisitorLogger\r\n\r\nsettings = VisitorSettings(url=\"https://example.com\", headless=True)\r\nlogger = VisitorLogger(settings)\r\nscheduler = SchedulerManager(logger)\r\n\r\ndef scheduled_job():\r\n    visitor = AutoWebsiteVisitor(settings)\r\n    visitor.run()\r\n\r\n# Schedule every 30 minutes\r\nscheduler.schedule_job(scheduled_job, \"interval\", \"30m\")\r\nscheduler.wait_for_completion()\r\n```\r\n\r\n## Logging\r\n\r\nAuto Website Visitor provides comprehensive logging:\r\n\r\n- **Console Output**: Real-time status updates\r\n- **File Logging**: Detailed logs with rotation\r\n- **Configurable Levels**: DEBUG, INFO, WARNING, ERROR\r\n- **Structured Format**: Timestamps and categorized messages\r\n\r\nExample log output:\r\n\r\n```\r\n2024-01-15 10:30:00 - auto_website_visitor - INFO - Starting Auto Website Visitor\r\n2024-01-15 10:30:00 - auto_website_visitor - INFO - Target URL: https://example.com\r\n2024-01-15 10:30:00 - auto_website_visitor - INFO - Visit count: 5\r\n2024-01-15 10:30:01 - auto_website_visitor - INFO - Starting visit 1/5\r\n2024-01-15 10:30:02 - auto_website_visitor - INFO - Visiting: https://example.com\r\n2024-01-15 10:30:05 - auto_website_visitor - INFO - Website visit completed successfully\r\n```\r\n\r\n## Error Handling\r\n\r\nThe package includes robust error handling:\r\n\r\n- **Retry Logic**: Automatic retries on failures\r\n- **Timeout Management**: Configurable page load timeouts\r\n- **Browser Recovery**: Automatic browser restart on crashes\r\n- **Graceful Degradation**: Continues operation despite individual failures\r\n\r\n## Security Considerations\r\n\r\n- **Proxy Support**: Route traffic through proxy servers\r\n- **User Agent Rotation**: Avoid detection with custom user agents\r\n- **Rate Limiting**: Control visit frequency to avoid overwhelming servers\r\n- **Headless Mode**: Run without visible browser windows\r\n\r\n## Performance Tips\r\n\r\n1. **Use Headless Mode**: Significantly faster execution\r\n2. **Optimize Intervals**: Balance speed with server courtesy\r\n3. **Configure Timeouts**: Avoid hanging on slow pages\r\n4. **Monitor Resources**: Use appropriate retry settings\r\n5. **Log Management**: Enable rotation for long-running tasks\r\n\r\n## Troubleshooting\r\n\r\n### Common Issues\r\n\r\n1. **WebDriver Not Found**\r\n   ```bash\r\n   # The package automatically downloads drivers, but you can install manually:\r\n   pip install webdriver-manager --upgrade\r\n   ```\r\n\r\n2. **Permission Denied**\r\n   ```bash\r\n   # On Linux/Mac, you might need to set executable permissions:\r\n   chmod +x /path/to/chromedriver\r\n   ```\r\n\r\n3. **Proxy Authentication**\r\n   ```bash\r\n   # Use environment variables for credentials:\r\n   export PROXY_USER=\"username\"\r\n   export PROXY_PASS=\"password\"\r\n   ```\r\n\r\n4. **Memory Issues**\r\n   - Enable headless mode\r\n   - Reduce visit count\r\n   - Increase intervals between visits\r\n\r\n### Debug Mode\r\n\r\nEnable debug logging for troubleshooting:\r\n\r\n```bash\r\nawv --url https://example.com --log-level DEBUG\r\n```\r\n\r\n## Updates\r\n\r\nCheck for and install updates:\r\n\r\n```bash\r\n# Check for updates\r\nawv update\r\n\r\n# Or use pip directly\r\npip install --upgrade auto-website-visitor\r\n```\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit pull requests, report bugs, or suggest new features.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.\r\n\r\n\u003e \\[!CAUTION]\r\n\u003e This tool is intended for legitimate testing and automation purposes only. Users are responsible for complying with website terms of service and applicable laws. Always respect robots.txt files and rate limiting guidelines.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnayandas69%2Fauto-website-visitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnayandas69%2Fauto-website-visitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnayandas69%2Fauto-website-visitor/lists"}