Skip to content

Commit 239cece

Browse files
committed
feat: Implemented more thorough sitemap sources for more environments.
1 parent 6d65ab8 commit 239cece

9 files changed

Lines changed: 653 additions & 185 deletions

File tree

.gitignore

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
share/python-wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
MANIFEST
28+
29+
# PyInstaller
30+
# Usually these files are written by a python script from a template
31+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32+
*.manifest
33+
*.spec
34+
35+
# Installer logs
36+
pip-log.txt
37+
pip-delete-this-directory.txt
38+
39+
# Unit test / coverage reports
40+
htmlcov/
41+
.tox/
42+
.nox/
43+
.coverage
44+
.coverage.*
45+
.cache
46+
nosetests.xml
47+
coverage.xml
48+
*.cover
49+
*.py,cover
50+
.hypothesis/
51+
.pytest_cache/
52+
cover/
53+
54+
# Jupyter Notebook
55+
.ipynb_checkpoints
56+
57+
# pyenv
58+
.python-version
59+
60+
# celery beat schedule file
61+
celerybeat-schedule
62+
63+
# SageMath parsed files
64+
*.sage.py
65+
66+
# Environments
67+
.env
68+
.venv
69+
env/
70+
venv/
71+
ENV/
72+
env.bak/
73+
venv.bak/
74+
75+
# Spyder project settings
76+
.spyderproject
77+
.spyproject
78+
79+
# Rope project settings
80+
.ropeproject
81+
82+
# mkdocs documentation
83+
/site
84+
85+
# mypy
86+
.mypy_cache/
87+
.dmypy.json
88+
dmypy.json
89+
90+
# Pyre type checker
91+
.pyre/
92+
93+
# Project Specific
94+
tests_output/
95+
*.log
96+
debug_*.html
97+
debug_*.png
98+
mcp_server.log

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ In the era of Agentic AI, tools need to be more than just Python scripts. They n
1818

1919
### ✨ Core Design Goals
2020
* **🤖 Hyper Model-Friendly**: All tools return standardized **JSON Envelopes**, separating metadata from content to prevent "context pollution."
21-
* **�️ Robust Failover**: Smart detection of anti-bot challenges (Cloudflare/403s) automatically triggers a switch from Headless to Visible browser mode to pass checks.
21+
* **🕷️ Smart Sitemap Discovery**: Automatically finds sitemaps via `robots.txt`, common paths (e.g. `/wp-sitemap.xml`), and homepage types/links.
22+
* **🛡️ Robust Failover**: Smart detection of anti-bot challenges (Cloudflare/403s) automatically triggers a switch from Headless to Visible browser mode to pass checks.
2223
* **🎯 Precision Control**: Use CSS Selectors (`selector`) and token limits (`max_length`) to extract *exactly* what you need, saving tokens and money.
23-
* ** Batch Efficiency**: The explicit `batch_scrape` tool handles parallel processing found in high-performance agent workflows.
24+
* **🔄 Batch Efficiency**: The explicit `batch_scrape` tool handles parallel processing found in high-performance agent workflows.
2425
* **⚡ MCP Native**: Exposes a full Model Context Protocol (MCP) server for instant integration with Claude Desktop, Cursor, and other agentic IDEs.
2526
* **🔒 Privacy & Stealth**: Uses `playwright-stealth` and randomized user agents to mimic human behavior.
2627

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "web-scraper-toolkit"
7-
version = "0.1.2"
7+
version = "0.1.3"
88
description = "A powerful, standalone web scraping toolkit using Playwright and various parsers."
99
readme = "README.md"
1010
requires-python = ">=3.10"

src/web_scraper_toolkit/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
1212
"""
1313

14-
__version__ = "0.1.2"
14+
__version__ = "0.1.3"
1515

1616
from .core.config import ScraperConfig, ScraperSettings
1717
from .core.logger import setup_logger

0 commit comments

Comments
 (0)