Skip to content

Repository files navigation

📦 RRK Crawler

پروژه جمع‌آوری و پردازش آگهی‌های روزنامه رسمی (rrk.ir)


معرفی پروژه

این پروژه یک کراولر غیررسمی برای وب‌سایت rrk.ir (سامانه روزنامه رسمی) است که با استفاده از Session واقعی APEX، آگهی‌ها را به‌صورت ساخت‌یافته استخراج می‌کند.

پروژه به‌صورت مرحله‌ای طراحی شده تا:

  1. اطلاعات فنی APEX (ajax, templates, identifiers) را Capture کند
  2. لیست آگهی‌ها را بر اساس تاریخ و شهر جمع‌آوری کند
  3. جزئیات کامل هر آگهی را به‌صورت جداگانه استخراج کند

ساختار پروژه

rrk-crawler/
├── capture_apex.py
├── crawl_list.py
├── crawl_details.py
├── config.py
├── date_utils.py
├── source/
│   ├── apex_config.json
│   ├── btnsearch_items.json
│   ├── ig_pjson_template.json
│   ├── ig_form_template.json
│   ├── storage_state.json
│   └── cities.json
├── out/
│   ├── checkpoint.json
│   ├── list_all.jsonl
│   └── details_all.jsonl
├── README.md
└── .gitignore

ترتیب صحیح اجرای پروژه

1️⃣ python capture_apex.py

خروجی‌ها:
	•	source/apex_config.json
	•	source/btnsearch_items.json
	•	source/ig_pjson_template.json
	•	source/ig_form_template.json

2️⃣ python crawl_list.py

خروجی:
	•	out/list_all.jsonl
	
ویژگی‌ها:
	•	پشتیبانی از resume با checkpoint
	•	پردازش همزمان شهرها
	•	گزارش زمان پردازش هر روز و کل پروژه

3️⃣ python crawl_details.py

خروجی:
	•	out/details_all.jsonl

ویژگی‌ها:
	•	خواندن لینک‌ها از list_all.jsonl
	•	جلوگیری از پردازش تکراری
	•	اجرای batch و concurrent
	•	مقاوم در برابر قطع Session

پیش‌نیازها

	•	Python 3.10+
	•	نصب وابستگی‌ها:

3️⃣ pip install -r requirements.txt

کتابخانه‌های اصلی:
	•	httpx
	•	beautifulsoup4
	•	lxml
	•	asyncio

🇬🇧 English Description

Project Overview

An unofficial crawler for rrk.ir based on Oracle APEX session APIs.

Execution order:

  1. Capture APEX configuration
  2. Crawl listings
  3. Crawl details

License & Usage

For research and data analysis purposes only.

About

Unofficial crawler for rrk.ir (Iran Official Gazette) using Oracle APEX session APIs

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages