Open-source Python web crawler that turns any website into clean, LLM-ready Markdown, with CSS/LLM-based structured extraction and an optional hosted API.
m92vyas/llm-reader
Python library that converts a webpage's HTML into LLM-ready text, with links and tables preserved for RAG and scraping.
Open-source alternative to:Firecrawl
Jina Reader
- Stars
- 314
- Forks
- 24
- Open issues
- 1
- Last commit
- 17 days ago
What is it?
llm-reader is a Python library that takes a webpage and turns it into clean text suited to LLM input. Pre-processing the page before sending it to a model is meant to improve extraction accuracy, especially when the task involves pulling out website links, image links, or tables, as in scraping an e-commerce catalog.
The library exposes two steps: fetching page source with Playwright for async, concurrent scraping, and processing that HTML into LLM-ready text. Page fetching is optional, since you can supply HTML from your own code or another service. The repository includes an example that extracts product names, links, images and prices from a furniture listing using an OpenAI model.
The project positions itself as an open-source alternative to Firecrawl and the Jina Reader API.
Key features
- 01Converts webpage HTML into LLM-ready input text.
- 02Preserves website and image links for extraction tasks.
- 03Handles tables, useful for scraping structured data.
- 04Uses Playwright for async, concurrent page fetching.
- 05Lets you supply page HTML from your own scraper or service.
Use cases
- Feeding web content into a RAG pipeline.
- Extracting product names, links and prices from e-commerce pages with an LLM.
- Building AI agents that need readable text from URLs.
Quick start
- 1
Install the library from GitHub with pip
pip install git+https://github.com/m92vyas/llm-reader.git - 2
Download the Playwright browser
playwright install - 3
Install Playwright system dependencies
playwright install-deps - 4
Import get_page_source and get_processed_text, then fetch a page and convert it to LLM-ready text in your code
Things to know
- Fetching pages relies on Playwright, which needs a browser download and system dependencies.
- Sites that block scrapers may require a paid proxy or scraping service.
In collections
Topics
FAQ
- What is llm-reader?
- Python library that converts a webpage's HTML into LLM-ready text, with links and tables preserved for RAG and scraping. llm-reader is a Python library that takes a webpage and turns it into clean text suited to LLM input. Pre-processing the page before sending it to a model is meant to improve extraction accuracy, especially when the task involves pulling out website links, image links, or tables, as in scraping an e-commerce catalog.
- Is llm-reader free to use? What license does it have?
- llm-reader is open source under the MIT license. Check the license terms before using it in commercial products.
- Is llm-reader still maintained?
- Actively maintained. The last commit to llm-reader was on Oct 20, 2026.
- What can I use llm-reader for?
- Feeding web content into a RAG pipeline. Extracting product names, links and prices from e-commerce pages with an LLM. Building AI agents that need readable text from URLs.
- How do I install llm-reader?
- Install the library from GitHub with pip: pip install git+https://github.com/m92vyas/llm-reader.git Download the Playwright browser: playwright install Install Playwright system dependencies: playwright install-deps Import get_page_source and get_processed_text, then fetch a page and convert it to LLM-ready text in your code
- Where can I get llm-reader?
- The source code and installation instructions are on GitHub: https://github.com/m92vyas/llm-reader
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Rust web crawler and extraction engine that turns websites, PDFs and Office files into clean Markdown and structured data for AI agents and RAG pipelines.
A Python web scraping library that uses LLMs and graph-based pipelines to extract structured data from websites and local documents based on a text prompt.
TypeScript, Python and Go SDK for browser agents that drives Chrome with natural-language act, observe and extract calls alongside Playwright-style APIs.
An LLM-powered web scraper, built on Streamlit, that extracts data from pages using OpenAI, Gemini, Ollama or LiteLLM models.
An API for AI agents to search, scrape, and interact with web pages, returning clean markdown, JSON, and screenshots.