Download Jamabandi (land records) from jamabandi.nic.in as PDF files.
Get the latest release for your platform:
| Platform | Download |
|---|---|
| Windows | JamabandiScraper.exe |
| macOS | JamabandiScraper.dmg |
No Python installation required - just download and run!
The Jamabandi website requires login with captcha. You need to copy your session cookie from the browser.
- Open Chrome or Edge browser
- Go to https://jamabandi.nic.in/PublicNakal
- Complete the login/captcha process
- Press F12 to open Developer Tools
- Click the Application tab (Chrome) or Storage tab (Firefox)
- In the left sidebar, expand Cookies and click on
https://jamabandi.nic.in - Find the cookie named
jamabandiID(orASP.NET_SessionId) - Double-click the Value column and copy it (e.g.,
abc123xyz...)
- Windows: Double-click
JamabandiScraper.exe - macOS: Open
JamabandiScraper.dmgand drag to Applications, then run
- Paste your Session Cookie in the cookie field
- Enter the location details:
- District Code (e.g.,
17for Sirsa) - Tehsil Code (e.g.,
102) - Village Code (e.g.,
05464) - Period (e.g.,
2024-2025) - Khewat Range (start and end numbers)
- District Code (e.g.,
- Click Start Scraping
The tool will download each record as HTML and automatically convert to PDF.
- GUI Application - Easy to use graphical interface
- Automatic PDF Conversion - HTML records converted to landscape A4 PDFs
- Resume Support - Interrupted downloads resume from where they left off
- Session Expiry Detection - Prompts for new cookie when session expires
- Concurrent Downloads - Optional parallel downloading (3-8 workers)
- Automatic Retry - Failed downloads are retried automatically
- Adaptive Rate Limiting - Adjusts speed based on server response
- Real-Time Statistics - Download speed, ETA, success rate
- Update Checker - Notifies when new version is available
| Section | Description |
|---|---|
| Main Settings | District, tehsil, village, period, khewat range, session cookie |
| Downloads Path | Where PDFs are saved (auto-creates downloads_<village> if blank) |
| Concurrent Downloads | Enable for faster downloads with multiple workers |
| Advanced Settings | Click + then Unlock (password: admin123) for delays, retries |
| Progress Bar | Shows download progress with counts |
| Log Output | Live output from the scraper |
Your session cookie has expired. This happens after ~30 minutes of inactivity.
Solution:
- Go back to jamabandi.nic.in in your browser
- Refresh the page and complete captcha if needed
- Copy the new cookie value (it changes each session)
- Paste in the app and click Start again
The app will resume from where it left off.
This is normal - not every khewat number has a record. The scraper will:
- Log these as "no record" (not errors)
- Continue to the next khewat
- Not retry these (they're permanent, not transient failures)
The app includes WeasyPrint for PDF conversion. If you see conversion errors:
Windows: Install wkhtmltopdf for better compatibility:
- Download from https://wkhtmltopdf.org/downloads.html
- Install to default location
- Restart the app
macOS: Usually works out of the box. If issues persist, install via Homebrew:
brew install wkhtmltopdfmacOS may block unsigned apps. To allow:
- Right-click the app and select "Open"
- Click "Open" in the security dialog
- Or: System Preferences > Security & Privacy > "Open Anyway"
Windows Defender may block the app. To allow:
- Click "More info" on the SmartScreen warning
- Click "Run anyway"
- Cookie expires quickly - Get a fresh cookie right before starting a large download
- Use concurrent mode for faster downloads (enable checkbox, 3-8 workers)
- Check the log for detailed progress and any errors
- Resume anytime - Progress is saved, just restart with same settings
If you prefer to run from source code instead of the standalone app:
- Python 3.10 or newer
- tkinter (usually included with Python)
# Clone the repository
git clone https://github.com/rbansal42/jamabandi-scraper.git
cd jamabandi-scraper
# Create virtual environment
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run the GUI
python run.py# Run scraper directly
python -m scraper.http_scraper --cookie YOUR_COOKIE --start 1 --end 100
# Convert HTML to PDF manually
python -m scraper.pdf_converter --input downloads_05464 --workers 4Create config.yaml in the app directory to customize settings:
delays:
min_delay: 2.0 # Minimum delay between requests (seconds)
max_delay: 5.0 # Maximum delay between requests
http:
timeout: 60 # Request timeout (seconds)
retry:
max_retries: 3 # Number of retry attempts
concurrency:
max_workers: 5 # Maximum concurrent download workers
logging:
level: INFO # Log level: DEBUG, INFO, WARNING, ERRORjamabandi-scraper/
├── run.py # Entry point
├── requirements.txt # Python dependencies
├── config.yaml # Configuration (optional)
├── scraper/
│ ├── gui.py # GUI application
│ ├── http_scraper.py # HTTP-based scraper
│ ├── pdf_converter.py # HTML to PDF converter
│ ├── pdf_backend.py # PDF conversion backends
│ ├── session_manager.py # Session expiry handling
│ ├── statistics.py # Download statistics
│ ├── rate_limiter.py # Adaptive rate limiting
│ ├── retry_manager.py # Failed download retry
│ ├── validator.py # Download validation
│ ├── update_checker.py # Version update checker
│ ├── cookie_capture.py # Cookie capture helpers
│ ├── config.py # Configuration loader
│ └── logger.py # Logging setup
└── tests/ # Unit tests
MIT License - See LICENSE for details.
- Issues: GitHub Issues
- Releases: GitHub Releases
