This project scrapes financial misinformation fact-check articles from multiple websites and converts them into a structured dataset.
The goal is to identify and analyze patterns in financial scams, fake investment schemes, and misleading claims circulating online.
This is part of the ongoing research at the TAPMI-Max Planck partner group.
-
Scrapes articles from multiple fact-checking platforms
-
Supports both:
- Direct article URLs
- Listing/search pages (bulk extraction)
-
Extracts structured fields:
- Institution
- Scam Vector
- Misinformation Type
- Core Claim
- Original Post
- Image Text
- Image URL
-
Uses NLP (spaCy) for entity detection
-
Includes data quality filtering
- Python
- BeautifulSoup
- Newspaper3k
- spaCy
- Pandas
git clone https://github.com/siddhant-Ghosh30/financial-misinformation-scraper.git
cd financial-misinformation-scraperpython3 -m venv venv
source venv/bin/activate # Macpip install -r requirements.txt
python -m spacy download en_core_web_smor
pip install newspaper3k pandas beautifulsoup4 lxml spacy jupyter
pip install lxml_html_clean- Open
scraper.ipynb - Add URLs in:
seed_urls = [
...
]- Limit to first 7 links per listing page (you can increase or decrease. Increasing will take more time)
if links:
all_urls.extend(links[:7]) - Run the script
Output:
financial_misinfo_dataset.csv
| Column | Description |
|---|---|
| Institution | Entity being impersonated |
| Scam_Vector | Medium of scam |
| Misinfo_Type | Type of misinformation |
| Core_Claim | False claim extracted |
| Original_Tweet | Source post |
| Image_Text | Text in image |
| Image_URL | Image link |
- Heuristic-based extraction (not perfect)
- Some websites may block scraping
- Image text is approximated (no OCR)
- Use LLM for better claim extraction
- Add OCR for image text
- Improve classification accuracy
- Scale scraping with async pipelines
Siddhant Ghosh