FishBase Scraper - Fish Species Database avatar

FishBase Scraper - Fish Species Database

Pricing

from $10.00 / 1,000 results

Go to Apify Store
FishBase Scraper - Fish Species Database

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

lulz bot

Maintained by Community

Actor 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

FieldTypeDefaultDescription
modestring"search""search" to find species by name, "species" to scrape specific URLs.
searchQueriesstring[][]Common or scientific names (e.g. ["salmon", "clownfish"]).
startUrlsobject[][]Direct FishBase species summary URLs.
limitinteger50Maximum species to return per search query.
proxyConfigurationobject-Optional proxy settings.

Output

Each result includes:

FieldDescription
commonNameCommon English name
scientificNameBinomial scientific name
familyTaxonomic family (e.g. Salmonidae)
orderTaxonomic order (e.g. Salmoniformes)
classTaxonomic class (e.g. Teleostei)
maxLengthMaximum reported body length
maxWeightMaximum reported weight
habitatHabitat description (marine, freshwater, etc.)
distributionGeographic coordinate range
depthDepth range
climateClimate zone (Tropical, Temperate, etc.)
dangerLevelDanger to humans (Harmless, Venomous, etc.)
descriptionShort biological description
imageUrlSpecies photograph URL
sourceUrlFull FishBase species page URL
scrapedAtISO 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

  1. Search mode: Sends queries to FishBase's CommonNameSearchList endpoint. Parses the JavaScript table_data_arr object to extract species IDs from DataTables data, then fetches each species summary page.

  2. Species mode: Directly scrapes species summary pages. Extracts taxonomy from navigation links, measurements and ecology from .smallSpace div sections, and danger level from colored box indicators.

  3. 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