ChinaCrawl
The Firecrawl alternative that works in China. 12-in-1 web data engine — zero external API cost.
中国版 Firecrawl。12 合 1 Web 数据引擎 — 零外部付费依赖。
Why ChinaCrawl?
Firecrawl is the best web scraping engine from Silicon Valley. But it's blocked in China and has no Chinese search optimization. ChinaCrawl fills this gap.
| Firecrawl | ChinaCrawl | |
|---|---|---|
| Works in China | No (blocked + no Chinese search) | Yes (Alibaba Cloud / self-hosted) |
| Chinese search | Google only | Baidu / Sogou / SearXNG configurable |
| LLM extraction | Credits-based (OpenAI API) | Local Ollama — zero marginal cost |
| Cost | Paid API | Free (AGPL) |
Capabilities (12-in-1)
| # | Capability | Firecrawl Equivalent | Usage |
|---|---|---|---|
| 1 | scrape | /scrape |
scrape("https://example.com") |
| 2 | search | /search |
search_web("keyword") |
| 3 | map | /map |
map_site("https://example.com") |
| 4 | crawl | /crawl |
crawl_site("https://example.com") |
| 5 | download | — | download_site("url", "output/") |
| 6 | monitor | /monitor |
monitor_page("url") |
| 7 | monitor-ai | — | monitor_page_ai("url") |
| 8 | extract | /extract |
extract_structured("url", schema) |
| 9 | extract-llm | /extract (credits) |
extract_llm("url", schema) |
| 10 | interact | /interact |
browser_interact("url", actions) |
| 11 | session | — | browser_session_save/load("name") |
extract-llmuses local Ollama (qwen2.5:7b) for semantic extraction. Zero API cost, unlimited calls.
Quick Start
Install
# Basic (scrape / search / map / crawl / download / monitor)
pip install chinacrawl
# Full (includes Playwright for browser interaction)
pip install chinacrawl[full]
# LLM extraction (optional, requires Ollama)
ollama pull qwen2.5:7b
3 Lines to Start
from chinacrawl import scrape, search_web, extract_llm
# Any URL -> Markdown
result = scrape("https://example.com")
print(result.content[:200])
# Web search
results = search_web("Python web scraping", max_results=5)
for r in results:
print(f"{r.title}: {r.url}")
# LLM-powered structured extraction (zero cost!)
data = extract_llm("https://news.ycombinator.com", {
"top_story": "h1",
"all_headlines": "a.storylink"
})
print(data.data)
CLI
python chinacrawl.py # Run built-in 11-capability test suite
Architecture
ChinaCrawl
├── Scrape: jina.ai + trafilatura -> Markdown
├── Search: SearXNG (self-hosted or public)
├── Map: trafilatura link discovery
├── Crawl: BFS recursive extraction
├── Download: Map + Scrape -> local {url}.md files
├── Monitor: Hash + AI Judge (noise-stripped)
├── Extract: CSS selector + Ollama qwen (semantic)
└── Interact: Playwright browser automation
Use Cases
- Financial data — batch scrape central bank / SEC announcements
- E-commerce intel — monitor competitor pricing on JD / Tmall
- Legal compliance — archive government regulations with version diff
- Bid monitoring — real-time government procurement alerts (AI de-noised)
- RAG pipelines — any website -> offline markdown -> Dify / LangChain
Disclaimer
ChinaCrawl is a data extraction tool, NOT an AI service.
IMPORTANT: Users assume all legal responsibility. ChinaCrawl provides general-purpose data collection capabilities. Users must:
- Respect target websites' robots.txt and terms of service
- Comply with applicable laws (including China's Cybersecurity Law, Data Security Law, Personal Information Protection Law)
- Obtain necessary permissions and consent
- Not use this tool for any illegal purpose
ChinaCrawl authors and contributors bear no legal liability for users' actions.
The
extract-llmfeature depends on user-installed Ollama models. Users must ensure their chosen model's license (Apache 2.0, MIT, Llama Community, etc.) permits their intended use. ChinaCrawl defaults to qwen2.5:7b (Apache 2.0, no restrictions).Respect robots.txt and terms of service. For legitimate use only.
License
GNU Affero General Public License v3.0 — Free to use, modify, and distribute. Modified versions served over a network must disclose source code.
Roadmap
- 11-in-1 core capabilities
- SearXNG search integration
- AI Judge noise filtering
- Chinese search engine config (Baidu / Sogou)
- PyPI release
- Docker one-click deployment
- Managed API (chinacrawl.cloud)
Built by Xiao Hei · ChinaCrawl · 2026
Metadata
Release files for chinacrawl 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chinacrawl-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / chinacrawl-0.2.0-py3-none-any.whl
| Download URL | chinacrawl-0.2.0-py3-none-any.whl |
|---|---|
| Size | 66.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b60158cc8c6acf7ebee26a003d3164962711c57b48fe5b1d1588c4812ab50a5
|
|
BLAKE2b-256 checksum How to use checksums |
1aae34bbbd408ff865da8e3adaee4743df5aed23ad910dd65ffee147dd522475
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|
Security for chinacrawl 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.