https://github.com/lesander/fbgs
Python and selenium based (mobile) Facebook groups scraper, independent of obfuscated css selectors.
https://github.com/lesander/fbgs
facebook-forensics facebook-group-scraper facebook-groups facebook-scraper osint python3 selenium
Last synced: 22 days ago
JSON representation
Python and selenium based (mobile) Facebook groups scraper, independent of obfuscated css selectors.
- Host: GitHub
- URL: https://github.com/lesander/fbgs
- Owner: lesander
- License: mit
- Created: 2021-01-30T15:20:37.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-01-31T13:09:33.000Z (over 5 years ago)
- Last Synced: 2024-11-17T03:12:49.801Z (over 1 year ago)
- Topics: facebook-forensics, facebook-group-scraper, facebook-groups, facebook-scraper, osint, python3, selenium
- Language: Python
- Homepage:
- Size: 26.4 KB
- Stars: 11
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Facebook group scraper
A simple selenium-dependent python scraper for Facebook groups.
Requirements:
- Python 3.6 or newer
- Selenium (automatically installed)
## Installing
Install via pypi: [`fbgs`](https://pypi.org/project/fbgs/)
```shell
# pypi
pip3 install fbgs
# local
git clone https://github.com/lesander/facebook-group-scraper.git
cd facebook-group-scraper/
pip3 install -r requirements.txt
```
## Usage
Cli usage:
```shell
# local & pypi
python3 -m fbgs \
--username user@example.com \
--password "example-password" \
--url https://m.facebook.com/groups/group-name \
--output ./path/for/output.json \
--no-shell # toggle to disable default selenium interactive prompt
```
Programmatic usage:
```python
from fbgs import FacebookScraper
from fbgs.exceptions import ScraperException
try:
scraper = FacebookScraper(
username="user@example.com", password="example-password")
scraper.login()
group = scraper.scrape_group(url="https://m.facebook.com/groups/group-name", out="output-example.json")
# results are stored in group
print(group.name, len(group.posts))
# you can start a live interaction with the selenium driver
scraper.interactive()
except ScraperException as e:
print(f'ScraperException: {e}')
```