This project is a scraper bot designed to fetch job postings from Ponisha (an Iranian freelancer platform) and send the details to a Telegram bot.
Here is a sample of how the bot operates:
The images above show job postings being sent to the Telegram bot.
- main.py: Contains the main logic for scraping job postings and sending them to Telegram.
- config.py: Contains configuration variables.
-
Clone the repository:
git clone https://github.com/Masniper/PonishaScraperBot
-
Navigate to the project directory:
cd PonishaScraperBot -
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
On Windows:
venv\Scripts\activate
On macOS/Linux:
source venv/bin/activate -
Install the required dependencies:
pip install -r requirements.txt
Update the config.py file with your desired skills, base URL, Telegram API key, and chat ID.
desired_skill = [
'وردپرس',
'پایتون',
'react',
'css',
'java',
'web-programming',
'ios',
'mobile-ui-design',
'bootstrap',
'ajax',
'debugging',
'ios-mobile',
'mac-os',
'material-design',
'nginx',
'node-js',
'restful',
'back-end',
'front-end',
'mobile-programming',
'javascript',
'react-native',
]
API_KEY = 'your-telegram-bot-api-key'
CHAT_ID = 'your-telegram-chat-id'-
Activate the virtual environment if not already activated:
On Windows:
venv\Scripts\activate
On macOS/Linux:
source venv/bin/activate -
Run the main script:
python main.py
-
The bot will start fetching job postings and send them to the specified Telegram chat.
/startScrap- Start scraping for job postings./stopScrap- Stop the scraping process./restartBot- Restart the bot and clear all data./limitbids (number)- Set a limit for the maximum project bids count./help- Display the help menu.
- time_now: Get the current hour for Tehran timezone.
- capture: Fetch HTML pages for each desired skill from Ponisha.
- finder: Extract job offer details (title, description, link, price) from HTML pages.
- sail: Send job details to the Telegram bot.
- loading_indicator: Show a loading indicator for the sleep period.
- send_welcome: Send a welcome message when the bot starts.
- send_help: Send help information.
- start_scrap: Start the scraping process.
- stop_scrap: Stop the scraping process.
- restart_bot: Restart the bot.
- limit_bids: Set a limit for project bids count.
This project is licensed under the MIT License. See the LICENSE file for more details.

