All projects

Technical Report · Workflow Automation

Facebook Scraper Bot and Forwarder

Python loop that polls a public Facebook page for new posts and forwards each one to a Telegram chat via the Bot API on a fixed interval.

AUTHOR  Gaurav Verma CATEGORY  Workflow Automation SOURCE  https://github.com/GAURAV-321/Facebook-Scraper-Bot-And-Forwarder DATE  Aug 2022 STATUS  published
View Source Python Automation Telegram Bot Web Scraping

Abstract

A Python loop that polls a public Facebook page for new posts and forwards each one to a Telegram chat via the Bot API. The interesting part is how little infrastructure it needs: one script, three config values, and a sleep interval do the whole job.

1. What This Is

I built this as a lightweight cross-platform bridge: a Facebook page acts as the content feed, and a Telegram chat is the delivery channel. The script runs unattended, checks the target page on a fixed interval, extracts post text, and pushes it through a Telegram bot. No database, no web server, no queue — just a loop and two API calls.

2. How It Works

The pipeline is a five-step loop. Configuration (page URL, bot token, chat ID) is loaded once at startup; everything after that repeats on the configured interval.

# Stage Input Tool Output
01 Load config page URL, bot token, chat ID Python runtime state
02 Fetch page Facebook page URL HTTP request / render raw page content
03 Parse posts raw HTML / rendered DOM Python parsing post text / metadata
04 Forward formatted post Telegram Bot API message in target chat
05 Sleep & repeat configured interval time.sleep next cycle

3. Implementation Notes

3.1 Configuration separation

Page URL, bot token, and chat ID are kept as configuration inputs distinct from the scraping and forwarding logic. Swapping the target page or destination chat means editing values, not code.

3.2 Terminal observability

Colorama is used for colored console output so a long-running process is easy to watch: each cycle logs what was found, what was forwarded, and any errors. No log file, no metrics endpoint — just stdout.

4. Constraints

  • Fragile to page-structure changes

    Facebook can restructure its DOM or add anti-bot challenges at any time, silently breaking the parser with no API contract to rely on.

  • No deduplication

    The loop has no persistent record of already-forwarded posts, so a restart or a missed cycle can re-send the same content.

  • Single source, single destination

    One page in, one chat out. Monitoring multiple pages or fanning out to several chats requires forking the script or adding a config loop.

  • No retry or backoff

    A transient network error or a 429 from Telegram is logged to the console but not retried; the cycle simply moves on to the next interval.

5. Next

  1. a. Persist forwarded post IDs (SQLite or a flat file) so restarts do not duplicate messages.
  2. b. Add exponential backoff and a max-retry count around both the Facebook fetch and the Telegram send.
  3. c. Generalise the config to accept a list of pages and a list of destination chats, turning the script into a small multi-source forwarder.

— end of report —