B2B Software Products & Reviews Scraper
Scrape B2B and SaaS software products with star ratings, review counts, pricing, feature lists and detailed user reviews (title, text, reviewer role and industry, rating and date). Search by category or keyword and export products plus reviews to JSON, CSV or Excel.
{ "source": "saashub.com", "searchQuery": "CRM", "productName": "Lead Force", "productSlug": "lead-force", "productUrl": "https://www.saashub.com/lead-force", "category": "CRM", "tagline": "CRM.", "priceModel": "paid", "pricingText": "Free Trial" }
每次运行都返回干净、带类型的记录,可直接用于你的 CRM、表格或数据库。
- 每个结果对应一条干净记录,已去重并规范化
- JSON、CSV 或 Excel 的稳定结构,也可通过 Apify API 读取
- 在云端按用量付费,无需安装或维护
一条真实的示例记录,正是你收到的结构。
| Search Query | Product Name | Product Slug | Product Url |
|---|---|---|---|
| CRM | Lead Force | lead-force | https://www.saashub.com/lead-force |
| CRM | Venturz.co | venturz-co | https://www.saashub.com/venturz-co |
| CRM | Zoho CRM | zoho-crm | https://www.saashub.com/zoho-crm |
| CRM | Freshsales CRM | freshsales-crm | https://www.saashub.com/freshsale… |
| CRM | Agile CRM | agile-crm | https://www.saashub.com/agile-crm |
{ "source": "saashub.com", "searchQuery": "CRM", "productName": "Lead Force", "productSlug": "lead-force", "productUrl": "https://www.saashub.com/lead-force", "category": "CRM", "tagline": "CRM.", "priceModel": "paid", "pricingText": "Free Trial" }
常见问题
Can I scrape a whole software category?
Yes. Enter the category name as a search query (for example `CRM` or `project management`) and the actor returns the matching products with their ratings, pricing and reviews.
Do I get the actual review text?
Yes. For each product the actor captures the latest user review with its title, body text, star rating, date and the reviewer's role or industry when available.
Can I run several categories in one go?
Yes. The search field is a list, so one run can cover many categories at once. Each record is tagged with the query that produced it.
How fresh is the data?
Products, ratings and reviews are read live at run time, so each record reflects the source at the moment of the run (see observedAt).