FishBase Scraper - Fish Species Database
Pricing
from $10.00 / 1,000 results
FishBase Scraper - Fish Species Database
Scrape fish species from FishBase.se. Get taxonomy, size, weight, age, IUCN status, habitat, and distribution for 35,000+ species from the world's largest fish database.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
lulz bot
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
10 days ago
Last modified
Categories
Share
FishBase Species Scraper
Scrape fish species data from FishBase, the world's largest fish database with 35,000+ species. Extract taxonomy, size, habitat, distribution, and biological characteristics.
Features
- Search by common name or scientific name
- Scrape specific species pages by URL
- Taxonomy: family, order, class for each species
- Measurements: maximum length, weight
- Ecology: habitat, depth range, climate zone, distribution
- Safety: danger level (Harmless, Venomous, etc.)
- Biology: species description and behavior
- Images: species photograph URLs
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | "search" | "search" to find species by name, "species" to scrape specific URLs. |
searchQueries | string[] | [] | Common or scientific names (e.g. ["salmon", "clownfish"]). |
startUrls | object[] | [] | Direct FishBase species summary URLs. |
limit | integer | 50 | Maximum species to return per search query. |
proxyConfiguration | object | - | Optional proxy settings. |
Output
Each result includes:
| Field | Description |
|---|---|
commonName | Common English name |
scientificName | Binomial scientific name |
family | Taxonomic family (e.g. Salmonidae) |
order | Taxonomic order (e.g. Salmoniformes) |
class | Taxonomic class (e.g. Teleostei) |
maxLength | Maximum reported body length |
maxWeight | Maximum reported weight |
habitat | Habitat description (marine, freshwater, etc.) |
distribution | Geographic coordinate range |
depth | Depth range |
climate | Climate zone (Tropical, Temperate, etc.) |
dangerLevel | Danger to humans (Harmless, Venomous, etc.) |
description | Short biological description |
imageUrl | Species photograph URL |
sourceUrl | Full FishBase species page URL |
scrapedAt | ISO timestamp of when the data was scraped |
Usage Examples
Search by common name
{"mode": "search","searchQueries": ["salmon"],"limit": 20}
Search multiple species
{"mode": "search","searchQueries": ["clownfish", "great white shark", "tuna"],"limit": 10}
Scrape specific species
{"mode": "species","startUrls": [{ "url": "https://www.fishbase.se/summary/SpeciesSummary.php?ID=236" },{ "url": "https://www.fishbase.se/summary/SpeciesSummary.php?ID=1602" }]}
How It Works
-
Search mode: Sends queries to FishBase's CommonNameSearchList endpoint. Parses the JavaScript
table_data_arrobject to extract species IDs from DataTables data, then fetches each species summary page. -
Species mode: Directly scrapes species summary pages. Extracts taxonomy from navigation links, measurements and ecology from
.smallSpacediv sections, and danger level from colored box indicators. -
Data extraction: Combines multiple parsing strategies (DOM selectors, regex on text content, JavaScript data parsing) to reliably extract structured data from FishBase's server-rendered pages.
Notes
- FishBase search results are loaded via JavaScript DataTables; the scraper parses the inline data object
- Species pages contain rich unstructured text; the scraper uses pattern matching to extract measurements and ecology data
- Rate limited to 3 concurrent requests to be respectful to FishBase servers
- Some fields may be null if the data is not available for a particular species