Gab Scraper
Pricing
from $1.00 / 1,000 result (gab post, profile or group)s
Gab Scraper
This actor scrapes searches, profiles, groups, and feeds URLs, as well as their posts and comments from the https://gab.com website.
Pricing
from $1.00 / 1,000 result (gab post, profile or group)s
Rating
0.0
(0)
Developer
Web Harvester
Maintained by CommunityActor stats
3
Bookmarked
32
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Gab Scraper extracts public data from gab.com: posts, pinned posts, reposts, quotes, comments and replies, account profiles, groups, custom feeds, search results and Gab Marketplace listings. Paste Gab URLs or type usernames, group IDs or keywords, and download the results as JSON, CSV, Excel or HTML.
No Gab account or login is needed. The scraper reads the same JSON that the Gab website loads, so it's fast and returns complete data.
What can Gab Scraper do?
| Source | Example URL or input | What you get |
|---|---|---|
| Account | https://gab.com/a or username a | Pinned posts first, then the account's posts. Or the profile itself (see Profiles instead of posts) |
| Post | https://gab.com/a/posts/109425213213150835 | The post, optionally with its comments |
| Group | https://gab.com/groups/1898 or group ID 1898 | Pinned and regular group posts, or the group details |
| Group media | https://gab.com/groups/1898/media | Only group posts with images or videos |
| Feed | https://gab.com/feeds/107613347340494233 | Posts of a custom feed |
| Post search | https://gab.com/search/statuses?q=bitcoin or keyword with search type Posts | Matching posts |
| People search | https://gab.com/search/people?q=bitcoin | Posts of matching accounts, or their profiles |
| Group search | https://gab.com/search/groups?q=bitcoin | Posts of matching groups, or the group details |
| Top search | https://gab.com/search/top?q=bitcoin | Matching people and groups, like the Top tab on Gab |
| Marketplace search | https://gab.com/marketplace/listings?query=shirt&sort_by=price-asc | Listings, filtered by keyword, category, condition, price and location |
| Marketplace item | https://gab.com/marketplace/item/117374150812934981 | One listing |
You can mix any of these in one run. Every post, profile, group and listing is saved only once per run, even if several sources lead to it.
How to use Gab Scraper
- Add Gab URLs to Gab URLs, or fill Usernames, Group IDs, Search queries or Marketplace search queries.
- Set Max posts per account, group, feed or search and, if you want comments, Max comments per post.
- Click Start and download the data from the Output tab.
Input example
{"startUrls": [{ "url": "https://gab.com/a" }, { "url": "https://gab.com/groups/1898" }],"searchQueries": ["bitcoin"],"searchType": "STATUSES","desiredPostsCount": 50,"desiredCommentsCount": 10,"accountPostsSortBy": "NEWEST","groupPostsSortBy": "TOP_MONTHLY","addUserInfo": true}
Profiles instead of posts
Set Max posts (desiredPostsCount) to 0 to save account profiles and group details instead of their posts. This works for account and group URLs, usernames, group IDs and People, Groups and Top searches. For example, this saves the profiles of the first 50 accounts that match "bitcoin":
{"searchQueries": ["bitcoin"],"searchType": "PEOPLE","desiredPostsCount": 0,"desiredAccountsCount": 50}
Sorting
| Input | Options |
|---|---|
accountPostsSortBy | NEWEST, NO_REPOSTS, TOP_TODAY, TOP_WEEKLY, TOP_MONTHLY, TOP_YEARLY, TOP_ALL_TIME |
groupPostsSortBy | HOT, RISING, NEWEST, RECENT, TOP_TODAY, TOP_WEEKLY, TOP_MONTHLY, TOP_YEARLY, TOP_ALL_TIME |
commentsSortBy | MOST_LIKED, NEWEST, OLDEST |
marketplaceSortBy | NEWEST, OLDEST, PRICE_ASCENDING, PRICE_DESCENDING |
Output
Each post has the same columns, no matter where it came from. The text is converted from HTML to plain text with line breaks and full link URLs. A trimmed example:
{"id": "109425213213150835","url": "https://gab.com/a/posts/109425213213150835","created_at": "2022-11-29T04:30:46.556Z","content": "","language": null,"is_reply": false,"replies_count": 1017,"reblogs_count": 2055,"favourites_count": 6856,"quotes_count": 173,"reactions_counts": { "1": 6058, "6": 562, "11": 125 },"account_id": "31","group_id": null,"pinned": true,"media_attachments": [{"id": "121474005","type": "image","url": "https://m3.gab.com/media_attachments/18/06/36/1806367bace2a7da52eb3385b324cdc1.jpg","preview_url": "https://m3.gab.com/media_attachments/18/06/36/1806367bace2a7da52eb3385b324cdc1.jpg"}],"card": null,"poll": null,"mentions": [],"tags": [],"status_context": { "id": "109360327882416978", "name": "🙌 Rejoice" },"reblog": null,"quote": null,"account": {"id": "31","username": "a","display_name": "Andrew Torba ✝️","url": "https://gab.com/a","followers_count": 4013494,"is_verified": true},"comments": [{"id": "110885414799378576","url": "https://gab.com/MsPat4921/posts/110885414799378576","content": "Found & connected . . . . . You are a force to be reckoned with, my young friend!","in_reply_to_id": "109425213213150835","favourites_count": 0}]}
reblogholds the full original post when the post is a repost,quotethe quoted post.accountis added when Add author profile to posts is on,groupwhen Add group details to posts is on.commentsis added when Max comments per post is above 0. It holds comments and their replies in the order Gab shows them, each with the same columns as a post. Usein_reply_to_idto rebuild the thread. Comments of a repost are taken from the original post.- Profiles have
username,display_name,note(bio as text),followers_count,following_count,statuses_count,is_verified,is_pro,avatar,header,created_atand more. - Groups have
title,description,member_count,is_private,is_verified,url, cover images and more. - Listings have
title,description,price,price_label,condition,location,marketplace_listing_category,media_attachments,attrsandurl. The seller is inaccount(a Gab user) orbusiness(a Gab business), the other one isnull.
The Output tab has separate table views for posts, profiles, groups and marketplace listings.
Limits of Gab
Gab shows less to logged-out visitors than to members. The scraper can only get what Gab shows publicly:
- Newest posts reach back about a week. With the
NEWESTandNO_REPOSTSaccount sorts and theHOT,RISING,NEWESTandRECENTgroup sorts, Gab only returns roughly the last 7 days of posts. Use aTOP_*sort, for exampleTOP_ALL_TIME, to get older posts. The log tells you when a source ran out for this reason. - Comments: at most 500 per post.
- Search: about 20 to 40 pages of results per query.
- Private accounts and private groups can't be scraped. Their profiles can still be saved with
desiredPostsCount: 0. - Group media tab requires a Gab login, so group media is collected from the group's posts instead.
- Gab no longer supports filtering marketplace listings by tags or shipping. These old inputs are accepted but ignored.
FAQ
Do I need a Gab account? No. Only public data is scraped, without logging in.
Why did I get fewer posts than I asked for? The account, group or feed has fewer public posts, or the sort only covers recent posts (see Limits of Gab).
Is it legal to scrape Gab? This Actor only collects publicly available data. Personal data is protected by laws such as GDPR, so only scrape personal data when you have a legitimate reason. If you're unsure, consult a lawyer. Read more in Is web scraping legal?
Integrations and API
Connect Gab Scraper with Make, Zapier, Slack, Google Sheets, Airbyte, GitHub and other integrations, or run it from your code with the Apify API and the apify-client package for Node.js or Python. The API tab has ready-to-use examples.
Focused versions
These Actors have a simpler input form for one use case and return the same data: