diff --git a/.env.example b/.env.example index bed3c58..4c2cb30 100644 --- a/.env.example +++ b/.env.example @@ -5,4 +5,5 @@ FIRECRAWL_API_KEY= SCRAPINGBEE_API_KEY= SCRAPERAPI_API_KEY= TAVILY_API_KEY= -ZYTE_API_KEY= \ No newline at end of file +ZYTE_API_KEY= +SCRAPEGRAPHAI_API_KEY= diff --git a/README.md b/README.md index d971b91..44d893b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Scrape-Evals is an evaluation framework for web scraping engines ("engines") that benchmarks quality and robustness on a fixed dataset. We focus on: (1) whether an engine successfully retrieves page content (Coverage/Success Rate); and (2) how well the retrieved content captures a human-curated core snippet while avoiding noise (Recall/Precision/F1). The F1 score measures content quality by balancing how much important content is captured (recall) against how much irrelevant content is filtered out (precision). In our results, we refer to the F1 score as "quality" for simplicity. -This framework supports APIs for Firecrawl, Apify, ScraperAPI, ScrapingBee, Zyte, and more but also some self-hosted engines like Crawl4AI, Playwright, Puppeteer, Rest, Scrapy, and Selenium. Additional APIs can be easily integrated. +This framework supports APIs for Firecrawl, Apify, ScraperAPI, ScrapingBee, Zyte, and more but also some self-hosted engines like Crawl4AI, Playwright, Puppeteer, Rest, Scrapy ScrapegraphAi, and Selenium. Additional APIs can be easily integrated. ## Results @@ -10,7 +10,8 @@ Below are evaluation results across different engines. | Engine | Coverage (Success Rate) (%) | Quality (F1) | |-----------------|-----------------------------|--------------| -| Firecrawl | 80.9 | 0.68 | +| ScrapegraphAi | 82.5 | 0.61 | +| Firecrawl | 81.6 | 0.66 | | Exa | 76.3 | 0.53 | | Tavily | 67.6 | 0.50 | | ScraperAPI | 63.5 | 0.45 | diff --git a/analysis.ipynb b/analysis.ipynb index ec0dbcd..9a736ff 100644 --- a/analysis.ipynb +++ b/analysis.ipynb @@ -1,2917 +1,3007 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Imports\n" - ] - }, + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analysis\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Imports\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "import json, pandas as pd\n", + "import plotly.express as px\n", + "\n", + "RESULTS_DIR = Path(\"runs\") / \"results\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "from pathlib import Path\n", - "import json, pandas as pd\n", - "import plotly.express as px\n", - "\n", - "RESULTS_DIR = Path(\"runs\") / \"results\"\n" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "found: 14 files\n" + ] + } + ], + "source": [ + "files = list(RESULTS_DIR.glob(\"*_quality.json\"))\n", + "print(\"found:\", len(files), \"files\")\n", + "\n", + "rows = []\n", + "for fp in files:\n", + " with fp.open() as f:\n", + " row = json.load(f)\n", + " row[\"engine\"] = fp.stem.replace(\"_quality\", \"\")\n", + " rows.append(row)\n", + "\n", + "df = pd.DataFrame(rows)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "df['success_perc'] = df['success_rate'] * 100\n", + "df['engine_name'] = df['engine'].str.replace('_api', '').str.replace('_scraper', '').str.capitalize().str.replace('Scrapingbee','ScrapingBee')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "found: 13 files\n" - ] - } + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
avg_recallavg_precisionavg_f1success_rateenginesuccess_percengine_name
00.4189810.4483160.4289880.540000scrapy_scraper54.000000Scrapy
10.4000460.4238880.4082570.536653puppeteer_scraper53.665284Puppeteer
20.4421660.4663400.4498290.635135scraperapi_api63.513514Scraperapi
30.6540140.6588620.6533950.816000firecrawl_api81.600000Firecrawl
40.4577690.4875540.4681740.628788zyte_api62.878788Zyte
50.5062110.5611970.5268010.763000exa_api76.300000Exa
60.3314530.3527730.3386660.395000playwright_scraper39.500000Playwright
70.3462790.3773940.3549530.506000rest_scraper50.600000Rest
80.4988650.5082610.5011430.676000tavily_api67.600000Tavily
90.4088990.4309150.4166200.602151apify_api60.215054Apify
100.4427680.4728550.4533490.580000crawl4ai_scraper58.000000Crawl4ai
110.3969120.4197320.4045740.550403selenium_scraper55.040323Selenium
120.4436170.4666970.4505430.606407scrapingbee_api60.640732ScrapingBee
130.6126830.6127050.6097010.825000scrapegraphai_scraper82.500000Scrapegraphai
\n", + "
" ], - "source": [ - "files = list(RESULTS_DIR.glob(\"*_quality.json\"))\n", - "print(\"found:\", len(files), \"files\")\n", - "\n", - "rows = []\n", - "for fp in files:\n", - " with fp.open() as f:\n", - " row = json.load(f)\n", - " row[\"engine\"] = fp.stem.replace(\"_quality\", \"\")\n", - " rows.append(row)\n", - "\n", - "df = pd.DataFrame(rows)\n" + "text/plain": [ + " avg_recall avg_precision avg_f1 success_rate engine \\\n", + "0 0.418981 0.448316 0.428988 0.540000 scrapy_scraper \n", + "1 0.400046 0.423888 0.408257 0.536653 puppeteer_scraper \n", + "2 0.442166 0.466340 0.449829 0.635135 scraperapi_api \n", + "3 0.654014 0.658862 0.653395 0.816000 firecrawl_api \n", + "4 0.457769 0.487554 0.468174 0.628788 zyte_api \n", + "5 0.506211 0.561197 0.526801 0.763000 exa_api \n", + "6 0.331453 0.352773 0.338666 0.395000 playwright_scraper \n", + "7 0.346279 0.377394 0.354953 0.506000 rest_scraper \n", + "8 0.498865 0.508261 0.501143 0.676000 tavily_api \n", + "9 0.408899 0.430915 0.416620 0.602151 apify_api \n", + "10 0.442768 0.472855 0.453349 0.580000 crawl4ai_scraper \n", + "11 0.396912 0.419732 0.404574 0.550403 selenium_scraper \n", + "12 0.443617 0.466697 0.450543 0.606407 scrapingbee_api \n", + "13 0.612683 0.612705 0.609701 0.825000 scrapegraphai_scraper \n", + "\n", + " success_perc engine_name \n", + "0 54.000000 Scrapy \n", + "1 53.665284 Puppeteer \n", + "2 63.513514 Scraperapi \n", + "3 81.600000 Firecrawl \n", + "4 62.878788 Zyte \n", + "5 76.300000 Exa \n", + "6 39.500000 Playwright \n", + "7 50.600000 Rest \n", + "8 67.600000 Tavily \n", + "9 60.215054 Apify \n", + "10 58.000000 Crawl4ai \n", + "11 55.040323 Selenium \n", + "12 60.640732 ScrapingBee \n", + "13 82.500000 Scrapegraphai " ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "df['success_perc'] = df['success_rate'] * 100\n", - "df['engine_name'] = df['engine'].str.replace('_api', '').str.replace('_scraper', '').str.capitalize().str.replace('Scrapingbee','ScrapingBee')\n" - ] - }, + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Analysis\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Scrapegraphai", + "marker": { + "color": "#8564FF", + "pattern": { + "shape": "" + } + }, + "name": "Scrapegraphai", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Scrapegraphai" + ], + "xaxis": "x", + "y": { + "bdata": "AAAAAACgVEA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Firecrawl", + "marker": { + "color": "#FF4D00", + "pattern": { + "shape": "" + } + }, + "name": "Firecrawl", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Firecrawl" + ], + "xaxis": "x", + "y": { + "bdata": "ZmZmZmZmVEA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Exa", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Exa", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Exa" + ], + "xaxis": "x", + "y": { + "bdata": "MzMzMzMTU0A=", + "dtype": "f8" + }, + "yaxis": "y" + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
avg_recallavg_precisionavg_f1success_rateenginesuccess_percengine_name
00.4189810.4483160.4289880.540000scrapy_scraper54.000000Scrapy
10.4000460.4238880.4082570.536653puppeteer_scraper53.665284Puppeteer
20.4421660.4663400.4498290.635135scraperapi_api63.513514Scraperapi
30.6785960.6759050.6757770.809000firecrawl_api80.900000Firecrawl
40.4577690.4875540.4681740.628788zyte_api62.878788Zyte
50.5062110.5611970.5268010.763000exa_api76.300000Exa
60.3314530.3527730.3386660.395000playwright_scraper39.500000Playwright
70.3462790.3773940.3549530.506000rest_scraper50.600000Rest
80.4988650.5082610.5011430.676000tavily_api67.600000Tavily
90.4088990.4309150.4166200.602151apify_api60.215054Apify
100.4427680.4728550.4533490.580000crawl4ai_scraper58.000000Crawl4ai
110.3969120.4197320.4045740.550403selenium_scraper55.040323Selenium
120.4436170.4666970.4505430.606407scrapingbee_api60.640732ScrapingBee
\n", - "
" - ], - "text/plain": [ - " avg_recall avg_precision avg_f1 success_rate engine \\\n", - "0 0.418981 0.448316 0.428988 0.540000 scrapy_scraper \n", - "1 0.400046 0.423888 0.408257 0.536653 puppeteer_scraper \n", - "2 0.442166 0.466340 0.449829 0.635135 scraperapi_api \n", - "3 0.678596 0.675905 0.675777 0.809000 firecrawl_api \n", - "4 0.457769 0.487554 0.468174 0.628788 zyte_api \n", - "5 0.506211 0.561197 0.526801 0.763000 exa_api \n", - "6 0.331453 0.352773 0.338666 0.395000 playwright_scraper \n", - "7 0.346279 0.377394 0.354953 0.506000 rest_scraper \n", - "8 0.498865 0.508261 0.501143 0.676000 tavily_api \n", - "9 0.408899 0.430915 0.416620 0.602151 apify_api \n", - "10 0.442768 0.472855 0.453349 0.580000 crawl4ai_scraper \n", - "11 0.396912 0.419732 0.404574 0.550403 selenium_scraper \n", - "12 0.443617 0.466697 0.450543 0.606407 scrapingbee_api \n", - "\n", - " success_perc engine_name \n", - "0 54.000000 Scrapy \n", - "1 53.665284 Puppeteer \n", - "2 63.513514 Scraperapi \n", - "3 80.900000 Firecrawl \n", - "4 62.878788 Zyte \n", - "5 76.300000 Exa \n", - "6 39.500000 Playwright \n", - "7 50.600000 Rest \n", - "8 67.600000 Tavily \n", - "9 60.215054 Apify \n", - "10 58.000000 Crawl4ai \n", - "11 55.040323 Selenium \n", - "12 60.640732 ScrapingBee " + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Tavily", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Tavily", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Tavily" + ], + "xaxis": "x", + "y": { + "bdata": "Z2ZmZmbmUEA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Scraperapi", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Scraperapi", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Scraperapi" + ], + "xaxis": "x", + "y": { + "bdata": "G0yRz7rBT0A=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Zyte", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Zyte", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Zyte" + ], + "xaxis": "x", + "y": { + "bdata": "8MEHH3xwT0A=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "ScrapingBee", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "ScrapingBee", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "ScrapingBee" + ], + "xaxis": "x", + "y": { + "bdata": "ssrOgwNSTkA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Apify", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Apify", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Apify" + ], + "xaxis": "x", + "y": { + "bdata": "HG644YYbTkA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Crawl4ai", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Crawl4ai", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Crawl4ai" + ], + "xaxis": "x", + "y": { + "bdata": "////////TEA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Selenium", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Selenium", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Selenium" + ], + "xaxis": "x", + "y": { + "bdata": "pZRSSimFS0A=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Scrapy", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Scrapy", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Scrapy" + ], + "xaxis": "x", + "y": { + "bdata": "AAAAAAAAS0A=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Puppeteer", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Puppeteer", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Puppeteer" + ], + "xaxis": "x", + "y": { + "bdata": "AyjVAijVSkA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Rest", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Rest", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Rest" + ], + "xaxis": "x", + "y": { + "bdata": "zczMzMxMSUA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
success_perc=%{y}", + "legendgroup": "Playwright", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Playwright", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Playwright" + ], + "xaxis": "x", + "y": { + "bdata": "AAAAAADAQ0A=", + "dtype": "f8" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "font": { + "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace", + "size": 12 + }, + "height": 600, + "legend": { + "title": { + "text": "engine_name" + }, + "tracegroupgap": 0 + }, + "paper_bgcolor": "#F9F9F9", + "plot_bgcolor": "#FFFFFF", + "showlegend": false, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" ] + ] }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Analysis\n" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Firecrawl", - "marker": { - "color": "#FF4D00", - "pattern": { - "shape": "" - } - }, - "name": "Firecrawl", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Firecrawl" - ], - "xaxis": "x", - "y": { - "bdata": "mpmZmZk5VEA=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Exa", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Exa", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Exa" - ], - "xaxis": "x", - "y": { - "bdata": "MzMzMzMTU0A=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Tavily", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Tavily", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Tavily" - ], - "xaxis": "x", - "y": { - "bdata": "Z2ZmZmbmUEA=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Scraperapi", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Scraperapi", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Scraperapi" - ], - "xaxis": "x", - "y": { - "bdata": "G0yRz7rBT0A=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Zyte", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Zyte", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Zyte" - ], - "xaxis": "x", - "y": { - "bdata": "8MEHH3xwT0A=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "ScrapingBee", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "ScrapingBee", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "ScrapingBee" - ], - "xaxis": "x", - "y": { - "bdata": "ssrOgwNSTkA=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Apify", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Apify", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Apify" - ], - "xaxis": "x", - "y": { - "bdata": "HG644YYbTkA=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Crawl4ai", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Crawl4ai", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Crawl4ai" - ], - "xaxis": "x", - "y": { - "bdata": "////////TEA=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Selenium", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Selenium", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Selenium" - ], - "xaxis": "x", - "y": { - "bdata": "pZRSSimFS0A=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Scrapy", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Scrapy", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Scrapy" - ], - "xaxis": "x", - "y": { - "bdata": "AAAAAAAAS0A=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Puppeteer", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Puppeteer", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Puppeteer" - ], - "xaxis": "x", - "y": { - "bdata": "AyjVAijVSkA=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Rest", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Rest", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Rest" - ], - "xaxis": "x", - "y": { - "bdata": "zczMzMxMSUA=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
success_perc=%{y}", - "legendgroup": "Playwright", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Playwright", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Playwright" - ], - "xaxis": "x", - "y": { - "bdata": "AAAAAADAQ0A=", - "dtype": "f8" - }, - "yaxis": "y" - } - ], - "layout": { - "barmode": "relative", - "font": { - "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace", - "size": 12 - }, - "height": 600, - "legend": { - "title": { - "text": "engine_name" - }, - "tracegroupgap": 0 - }, - "paper_bgcolor": "#F9F9F9", - "plot_bgcolor": "#FFFFFF", - "showlegend": false, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermap": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermap" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Coverage (Success Rate) by Engine" - }, - "width": 800, - "xaxis": { - "anchor": "y", - "categoryarray": [ - "Firecrawl", - "Exa", - "Tavily", - "Scraperapi", - "Zyte", - "ScrapingBee", - "Apify", - "Crawl4ai", - "Selenium", - "Scrapy", - "Puppeteer", - "Rest", - "Playwright" - ], - "categoryorder": "array", - "domain": [ - 0, - 1 - ], - "gridcolor": "#F9F9F9", - "tickfont": { - "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" - }, - "title": { - "text": "Engine" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "dtick": 5, - "range": [ - 35, - 85 - ], - "tickfont": { - "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" - }, - "title": { - "text": "Coverage (Success Rate %)" - } - } - } - } + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Coverage (Success Rate) Bar Chart\n", - "df_sorted_reach = df.sort_values(\"success_perc\", ascending=False)\n", - "color_map_reach = {engine: \"#FF4D00\" if engine == \"Firecrawl\" else \"#EDEDED\" for engine in df_sorted_reach[\"engine_name\"]}\n", - "\n", - "fig_reach = px.bar(\n", - " df_sorted_reach,\n", - " x=\"engine_name\",\n", - " y=\"success_perc\",\n", - " color=\"engine_name\",\n", - " color_discrete_map=color_map_reach,\n", - " title=\"Coverage (Success Rate) by Engine\",\n", - ")\n", - "\n", - "fig_reach.update_layout(\n", - " xaxis_title=\"Engine\",\n", - " yaxis_title=\"Coverage (Success Rate %)\",\n", - " showlegend=False,\n", - " width=800,\n", - " height=600,\n", - " plot_bgcolor=\"#FFFFFF\",\n", - " paper_bgcolor=\"#F9F9F9\",\n", - " yaxis_range=[35, 85],\n", - " xaxis=dict(\n", - " gridcolor=\"#F9F9F9\",\n", - " tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"),\n", - " categoryorder=\"array\",\n", - " categoryarray=df_sorted_reach[\"engine_name\"].tolist(),\n", - " ),\n", - " yaxis=dict(tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"), dtick=5),\n", - " font=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\", size=12),\n", - ")\n", - "\n", - "\n", - "fig_reach.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Firecrawl", - "marker": { - "color": "#FF4D00", - "pattern": { - "shape": "" - } - }, - "name": "Firecrawl", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Firecrawl" - ], - "xaxis": "x", - "y": { - "bdata": "EJBr+fef5T8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Exa", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Exa", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Exa" - ], - "xaxis": "x", - "y": { - "bdata": "pQ9xXo3b4D8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Tavily", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Tavily", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Tavily" - ], - "xaxis": "x", - "y": { - "bdata": "8Fxno10J4D8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Zyte", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Zyte", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Zyte" - ], - "xaxis": "x", - "y": { - "bdata": "c0HX1o/23T8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Crawl4ai", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Crawl4ai", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Crawl4ai" - ], - "xaxis": "x", - "y": { - "bdata": "RsoHtasD3T8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "ScrapingBee", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "ScrapingBee", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "ScrapingBee" - ], - "xaxis": "x", - "y": { - "bdata": "XewSybLV3D8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Scraperapi", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Scraperapi", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Scraperapi" - ], - "xaxis": "x", - "y": { - "bdata": "apGwq/7J3D8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Scrapy", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Scrapy", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Scrapy" - ], - "xaxis": "x", - "y": { - "bdata": "gTTxcop02z8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Apify", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Apify", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Apify" - ], - "xaxis": "x", - "y": { - "bdata": "xi0sT+ep2j8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Puppeteer", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Puppeteer", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Puppeteer" - ], - "xaxis": "x", - "y": { - "bdata": "Rb92KOAg2j8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Selenium", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Selenium", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Selenium" - ], - "xaxis": "x", - "y": { - "bdata": "/GMKbojk2T8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Rest", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Rest", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Rest" - ], - "xaxis": "x", - "y": { - "bdata": "qAukmY631j8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", - "legendgroup": "Playwright", - "marker": { - "color": "#EDEDED", - "pattern": { - "shape": "" - } - }, - "name": "Playwright", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "type": "bar", - "x": [ - "Playwright" - ], - "xaxis": "x", - "y": { - "bdata": "VO04p7Ss1T8=", - "dtype": "f8" - }, - "yaxis": "y" - } - ], - "layout": { - "barmode": "relative", - "font": { - "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace", - "size": 12 - }, - "height": 600, - "legend": { - "title": { - "text": "engine_name" - }, - "tracegroupgap": 0 - }, - "paper_bgcolor": "#F9F9F9", - "plot_bgcolor": "#FFFFFF", - "showlegend": false, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermap": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermap" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Quality (F1) by Engine" - }, - "width": 800, - "xaxis": { - "anchor": "y", - "categoryarray": [ - "Firecrawl", - "Exa", - "Tavily", - "Zyte", - "Crawl4ai", - "ScrapingBee", - "Scraperapi", - "Scrapy", - "Apify", - "Puppeteer", - "Selenium", - "Rest", - "Playwright" - ], - "categoryorder": "array", - "domain": [ - 0, - 1 - ], - "gridcolor": "#F9F9F9", - "tickfont": { - "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" - }, - "title": { - "text": "Engine" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "range": [ - 0.3, - 0.7 - ], - "tickfont": { - "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" - }, - "tickformat": ".2f", - "title": { - "text": "Quality (F1)" - } - } - } - } + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" }, - "metadata": {}, - "output_type": "display_data" + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Coverage (Success Rate) by Engine" + }, + "width": 800, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "Scrapegraphai", + "Firecrawl", + "Exa", + "Tavily", + "Scraperapi", + "Zyte", + "ScrapingBee", + "Apify", + "Crawl4ai", + "Selenium", + "Scrapy", + "Puppeteer", + "Rest", + "Playwright" + ], + "categoryorder": "array", + "domain": [ + 0, + 1 + ], + "gridcolor": "#F9F9F9", + "tickfont": { + "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" + }, + "title": { + "text": "Engine" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "dtick": 5, + "range": [ + 35, + 85 + ], + "tickfont": { + "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" + }, + "title": { + "text": "Coverage (Success Rate %)" + } } - ], - "source": [ - "# Quality (F1) Bar Chart (vertical, best on the left)\n", - "df_sorted_f1 = df.sort_values(\"avg_f1\", ascending=False)\n", - "color_map_f1 = {engine: \"#FF4D00\" if engine == \"Firecrawl\" else \"#EDEDED\" for engine in df_sorted_f1[\"engine_name\"]}\n", - "\n", - "fig_f1 = px.bar(\n", - " df_sorted_f1,\n", - " x=\"engine_name\",\n", - " y=\"avg_f1\",\n", - " color=\"engine_name\",\n", - " color_discrete_map=color_map_f1,\n", - " title=\"Quality (F1) by Engine\",\n", - ")\n", - "\n", - "fig_f1.update_layout(\n", - " xaxis_title=\"Engine\",\n", - " yaxis_title=\"Quality (F1)\",\n", - " showlegend=False,\n", - " width=800,\n", - " height=600,\n", - " plot_bgcolor=\"#FFFFFF\",\n", - " paper_bgcolor=\"#F9F9F9\",\n", - " yaxis_range=[0.3, 0.7],\n", - " xaxis=dict(\n", - " gridcolor=\"#F9F9F9\",\n", - " tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"),\n", - " categoryorder=\"array\",\n", - " categoryarray=df_sorted_f1[\"engine_name\"].tolist(),\n", - " ),\n", - " yaxis=dict(tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"), tickformat=\".2f\"),\n", - " font=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\", size=12),\n", - ")\n", - "\n", - "fig_f1.show()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Summary Table\n" - ] - }, + } + }, + "image/png": "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REAEREAEREAEREAEREAEvI6AFCped8m9S+CureuinqVcsaX+9ffDWLjqU3RvFwCXS5YaNhfNEwkBeWMlkguhaoiACIiACIiACIiACIjA3QlIoXJ3RglfQjWINQLjZizHY3lzgYFpY+2gOpAIxBYB6fhii6SOIwIiIAIiIAJeTEA9NF588SV6PBOIE4VKPMug04nAPRPo2bEh8jycAwGBA3Hp8pV73k8FRUAEREAEREAEREAERMAzCKiHxjOuk3Nq6c2SSKHizVffC2XPld3PBK2dOKwzUqZI7oUEJLIIiIAIxBUB9YjGFVkdVwREQAREIFYJ6GAiEGsEpFCJNZQ6kCcR4Mg/t62vvgdui0WZIiACInB3AuoRvTsjlRABERCB+yGgfURABBIrASlUEuuVUb0ShoC+BxKGu84qAiIgAiIgAiLgHAKSRAREQAS8hIAUKl5yoSWmCIiACIiACIiACIjA7QkoVwREQAREQATuh4AUKvdDTfuIQGIiIDelxHQ1VBcREAERiA8COocIiIAIiIAIiEAiICCFSiK4CKqCCDwQAbkpPRA+7SwCIhAfBHQOERABERABERABEXAeASlUnHdNJZEIiIAIiMCDEtD+IiACIiACIiACIiACInAXAlKo3AWQNouACIiAJxBQHUVABERABETAOwnI99k7r7ukFoHEQUAKlcRxHVQLEfA2ApJXBERABERABERABGKBgHyfYwGiDiECInCfBKRQuU9w2s3bCEheERABERABERABERABERABERABEbhJQAqVmyyctSRpREAEREAEREAEREAEREAEREAEREAE4oxAolGoxJmEOrAIiIAIiIAIiIAIiIAIiIAIiIAIiECiIeCUikih4pQrKTlEQAREQAREQAREQAREQAREQATigoCOKQK3JSCFym2xKFMEREAEREAEREAEREAEREAEPJWA6i0CIhAfBKRQiQ/KOocIiIAIiIAIiIAIiIAIiMCdCWiLCIiACHggASlUPPCiqcoiIAIiIAIiIAIiIAIJS0BnFwEREAEREAEpVHQPiIAIiIAIiIAIJHoC169fx9xlG/DV93sTfV0TaQVVLREQAREQAREQgVgmIIVKLAPV4UQgPghcj4+T6BwiIAIicA8EStXshMKvtomSAgIH3sOedysSdfuVq9cwOnQJFodtjrpBayIgAiIgAiIgAiKQQASkUEkg8DqtCDwIAdeD7Kx9RUAE4oaAFx+17AvPITQkyJ36BTWLdRopkifDqlmD0afL67F+bB1QBERABERABERABO6HgBQq90NN+4iACIiAAwhIBBGILQI5s/uheKEn3angE3li69BRjpM7VzakT5s6Sp5WREAEREAEREAERCChCEihklDkdV4REIGYElB5ERABDyQwfOJCTF+wBnv2HUTnfhNAF6HgIVNx8dIVtzTXwsOxct1WBA2chOrNeqNJx2F4o2sIwsP/M2VaBI0w68xbtmaLyYs8WbV+G7r2n4hTp89h4Oj3zTlY9sCho+5ijMGyYMUn5th0UWJdjp34171dCyIgAiIgAiIgAiIQUwJSqMSUmMqLwD0TUEEREAER8A4CFy5exslTZ93p8pWrbsH3HTiMtZu+RMtuI+HjkwSBTaphw5avMHvROneZsdOWGUXIQ9mzoF3TGqDFy3c/7sN16x8LVatQEtVeKYlffvsTR4+fZFaUdPzvU9i8/Xu06zXWKG46vlETBw8fM8e0C85cuBYjJi/CC0WfwoBuzbB3/yH0HDbN3qy5CIiACIiACIhAnBJwZhRIKVTi9KbxsIOruiIgAiIgAiJwHwRoXVI+oBvstO7THVGO8tvBI2jVqApG92+PpvVeNa5Bvx7405T58pufMX/5RvRoVx9BgfVQpXwJvPD8U2abPaldpTTqVCmDTL7p7KzbzjNnTId5499Gw1rl0ei18qBShgVpuTJh1ko0qOmPDs1roWbFUmjTuJrZHtmKhWWVREAEREAEREAE4oKAM6NAerRCJS4us44pAiIgAiIgAiIQMwI1Xn0R6+YPd6dXXy4W5QCFCz6G5gEV3XkZ0qfF5csRVizf7v7V5Jd7qbCZP8hkaM9WxgqGx4gca2X33t+ZZSlQ9hvXILoHhW3YbvJuZ/FiNmgiAiIgAiLgfALONJpw7HVLjIJJoZIYr4rqJAIiIAIiIAIeRCBtmlTIliWjO6VKmTxK7R/K4QeX62bPVFKfJPjvesRb7K49vyNf7hzIniWTe59z5y+6l+91IZNvOmRIl8Zd3MfHxywzdsrFS5fNcrlShVGh9PMm1a1aBkOCW+CRh7KZbZqIgAiIgAh4IYGbTVNcCK9jegGBJF4go0QUAREQAREQARFIpASSJ0sKugRdCw83NaQLzuipS8xybE0KPpnPHCqrny+qVigZJeXIltls00QEREAEREAEREAEYkpACpWYElN5ERABERABERCBKAQOHj6OLf/3gztt3bE7yvboVp596lGzecLMleBoPW17jsFDObKYPBdcZh55wgC0P//6B/48ciJydrTLObJmQvmXiiBk0iJs3bELp8+eNwFux0xbCgbNjXZnbRQBEUi8BFQzERABEUhgAlKoJPAF0OlFQAREQAREwNMJUEnBYYjt9NbQqW6RkrhccLlc7nV7gflcrl+jLIo+9wTmLFmPAaPmmOCzjWtX4CZ3PBSzcmOy+uMv0KjDUEx+f/WNHNz2+Ljlb3BwC5Qq9jTe7DMeZet0NcMwn/j7FOiudEtRrYpAnBHQgUVABERABJxFQAoVZ11PSSMCIiACIiAC8Upg26px+PbjqVES8+xKhIYEYWD35vaqmQ/r1QoTh3U2y6lTpcRUq8zq2UOwPWwCWjeuit8PHjHxWEyBSJOwOUPd5xn6Vkv3Fo4g9MniUe51LtSuUtqUdbkilDmpUiZHSJ9AfLF6AlbNGoytK98D6xE5dgv3U4pCQCsiIAIiIAIiIALREJBCJRo42iQCIiACIiACIhC3BPqNmIUlH36Gq9fCcebsBSz9aAsWh21Gw1rl7uPEd9+FipXcubLdk1XL3Y+mEiIgAiIgAiIgAt5MQAoVb776kl0EREAERCBhCejseLZAPqzdtAN1WvVHxUbBmLv0Y3RoXgvN6lUUHREQAREQAREQARFI1ASkUEnUl0eVEwEREIHERUC1EYHYJlC32suYNSYYdBPauGgkVs0aArrwxPZ5dDwREAEREAEREAERiG0CUqjENlEdTwREIDERUF1EQAQ8hABjqWTOmN5DaqtqioAIiIAIiIAIiAAghYruAhFIVARUGREQAREQAREQAREQAREQAREQAU8gIIWKJ1ylxFxH1U0EREAEREAEREAEREAEREAEREAEvJCA1ylUvPAaS2QREAEREAEREAEREAEREAEREAER8DoCcS2wFCpxTVjHFwEREAEREAEREAEREAEREAEREIG7E1AJDyMghYqHXTBVVwREQAREQAREQAREQAREQAQSBwHVQgS8m4AUKt59/SW9CHgogeseWm9VWwREQAREQAREIGAlRkgAAAA8SURBVEEJ6OQiIAIiEIsEpFCJRZg6lAiIQHwRcMXXiXQeERABERABEUhQAjq5CMQPAXVWxQ9nncVpBP4fAAD//16ZbYYAAAAGSURBVAMAmox0gV1chw4AAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Coverage (Success Rate) Bar Chart\n", + "df_sorted_reach = df.sort_values(\"success_perc\", ascending=False)\n", + "colors_engines_map = { \"Firecrawl\" : \"#FF4D00\", \"Scrapegraphai\": \"#8564FF\" } \n", + "color_map_reach = {engine: colors_engines_map.get(engine, \"#EDEDED\") for engine in df_sorted_reach[\"engine_name\"]}\n", + "\n", + "fig_reach = px.bar(\n", + " df_sorted_reach,\n", + " x=\"engine_name\",\n", + " y=\"success_perc\",\n", + " color=\"engine_name\",\n", + " color_discrete_map=color_map_reach,\n", + " title=\"Coverage (Success Rate) by Engine\",\n", + ")\n", + "\n", + "fig_reach.update_layout(\n", + " xaxis_title=\"Engine\",\n", + " yaxis_title=\"Coverage (Success Rate %)\",\n", + " showlegend=False,\n", + " width=800,\n", + " height=600,\n", + " plot_bgcolor=\"#FFFFFF\",\n", + " paper_bgcolor=\"#F9F9F9\",\n", + " yaxis_range=[35, 85],\n", + " xaxis=dict(\n", + " gridcolor=\"#F9F9F9\",\n", + " tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"),\n", + " categoryorder=\"array\",\n", + " categoryarray=df_sorted_reach[\"engine_name\"].tolist(),\n", + " ),\n", + " yaxis=dict(tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"), dtick=5),\n", + " font=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\", size=12),\n", + ")\n", + "\n", + "\n", + "fig_reach.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Firecrawl", + "marker": { + "color": "#FF4D00", + "pattern": { + "shape": "" + } + }, + "name": "Firecrawl", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Firecrawl" + ], + "xaxis": "x", + "y": { + "bdata": "CUsgsJzo5D8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Scrapegraphai", + "marker": { + "color": "#8564FF", + "pattern": { + "shape": "" + } + }, + "name": "Scrapegraphai", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Scrapegraphai" + ], + "xaxis": "x", + "y": { + "bdata": "kF2s96qC4z8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Exa", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Exa", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Exa" + ], + "xaxis": "x", + "y": { + "bdata": "pQ9xXo3b4D8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Tavily", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Tavily", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Tavily" + ], + "xaxis": "x", + "y": { + "bdata": "8Fxno10J4D8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Zyte", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Zyte", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Zyte" + ], + "xaxis": "x", + "y": { + "bdata": "c0HX1o/23T8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Crawl4ai", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Crawl4ai", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Crawl4ai" + ], + "xaxis": "x", + "y": { + "bdata": "RsoHtasD3T8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "ScrapingBee", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "ScrapingBee", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "ScrapingBee" + ], + "xaxis": "x", + "y": { + "bdata": "XewSybLV3D8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Scraperapi", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Scraperapi", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Scraperapi" + ], + "xaxis": "x", + "y": { + "bdata": "apGwq/7J3D8=", + "dtype": "f8" + }, + "yaxis": "y" + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
EngineCoverage (Success Rate %)Quality (F1)RecallPrecision
3Firecrawl80.9000000.6757770.6785960.675905
5Exa76.3000000.5268010.5062110.561197
8Tavily67.6000000.5011430.4988650.508261
2Scraperapi63.5135140.4498290.4421660.466340
4Zyte62.8787880.4681740.4577690.487554
12ScrapingBee60.6407320.4505430.4436170.466697
9Apify60.2150540.4166200.4088990.430915
10Crawl4ai58.0000000.4533490.4427680.472855
11Selenium55.0403230.4045740.3969120.419732
0Scrapy54.0000000.4289880.4189810.448316
1Puppeteer53.6652840.4082570.4000460.423888
7Rest50.6000000.3549530.3462790.377394
6Playwright39.5000000.3386660.3314530.352773
\n", - "
" - ], - "text/plain": [ - " Engine Coverage (Success Rate %) Quality (F1) Recall Precision\n", - "3 Firecrawl 80.900000 0.675777 0.678596 0.675905\n", - "5 Exa 76.300000 0.526801 0.506211 0.561197\n", - "8 Tavily 67.600000 0.501143 0.498865 0.508261\n", - "2 Scraperapi 63.513514 0.449829 0.442166 0.466340\n", - "4 Zyte 62.878788 0.468174 0.457769 0.487554\n", - "12 ScrapingBee 60.640732 0.450543 0.443617 0.466697\n", - "9 Apify 60.215054 0.416620 0.408899 0.430915\n", - "10 Crawl4ai 58.000000 0.453349 0.442768 0.472855\n", - "11 Selenium 55.040323 0.404574 0.396912 0.419732\n", - "0 Scrapy 54.000000 0.428988 0.418981 0.448316\n", - "1 Puppeteer 53.665284 0.408257 0.400046 0.423888\n", - "7 Rest 50.600000 0.354953 0.346279 0.377394\n", - "6 Playwright 39.500000 0.338666 0.331453 0.352773" + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Scrapy", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Scrapy", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Scrapy" + ], + "xaxis": "x", + "y": { + "bdata": "gTTxcop02z8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Apify", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Apify", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Apify" + ], + "xaxis": "x", + "y": { + "bdata": "xi0sT+ep2j8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Puppeteer", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Puppeteer", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Puppeteer" + ], + "xaxis": "x", + "y": { + "bdata": "Rb92KOAg2j8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Selenium", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Selenium", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Selenium" + ], + "xaxis": "x", + "y": { + "bdata": "/GMKbojk2T8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Rest", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Rest", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Rest" + ], + "xaxis": "x", + "y": { + "bdata": "qAukmY631j8=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "engine_name=%{x}
avg_f1=%{y}", + "legendgroup": "Playwright", + "marker": { + "color": "#EDEDED", + "pattern": { + "shape": "" + } + }, + "name": "Playwright", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "Playwright" + ], + "xaxis": "x", + "y": { + "bdata": "VO04p7Ss1T8=", + "dtype": "f8" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "font": { + "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace", + "size": 12 + }, + "height": 600, + "legend": { + "title": { + "text": "engine_name" + }, + "tracegroupgap": 0 + }, + "paper_bgcolor": "#F9F9F9", + "plot_bgcolor": "#FFFFFF", + "showlegend": false, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Quality (F1) by Engine" + }, + "width": 800, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "Firecrawl", + "Scrapegraphai", + "Exa", + "Tavily", + "Zyte", + "Crawl4ai", + "ScrapingBee", + "Scraperapi", + "Scrapy", + "Apify", + "Puppeteer", + "Selenium", + "Rest", + "Playwright" + ], + "categoryorder": "array", + "domain": [ + 0, + 1 + ], + "gridcolor": "#F9F9F9", + "tickfont": { + "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" + }, + "title": { + "text": "Engine" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "range": [ + 0.3, + 0.7 + ], + "tickfont": { + "family": "'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace" + }, + "tickformat": ".2f", + "title": { + "text": "Quality (F1)" + } } + } + }, + "image/png": "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gnnR9pWaqFaxFDJk8EGTupWdsCOjohActhAdW9ZBvkdyO/O1IQIiIAIiIAIikHgEVJMIiIAIiIA1CUihYs37KqnchkDyBVJKnToV5kwahMIF/J10Vm7YiQt//oV2zWo587QhAiIgAiLg8QQEQAREQAREQAREIA4EpFCJAyQVEQErErh85SomzFiGapWeQ3qftFYUUTKJgAh4DAEJKgIiIAIiIAIiIALJT0AKleRnriuKgEsQoBIlNKgHDh4+gbfHRbhEmxKlEUnvRZUozVQlHk5A4ouACIiACIiACIiACLg9ASlU3P4WSgARSDiBUsULY97kIejapkHCK3G1M5PPi8rVJE/S9qhyERABERABERABERABERCB2ASkUInNQ3si4HEEvL294J8np9Xktr48rmyJ48pts/5fhiQUAREQAREQAREQARFIJgJSqCQTaF1GBO5PQEdFIJ4EXNkSx5XbFk/MKh5NQDqyaA5aioAIiIAIiIAIiEBMAlKoxKSh7bgTUEkREAEREAGPISAdmcfcagkqAiIgAiIgAiIQDwIeo1CJBxMVFQEREAEREAEREAHLEJCFkWVupQQRARGwAAE9k5PnJibXVaRQSS7Suo4IiIAIiIAIiIAIpAABWRilAHRdUgREQATuQeAez+R7lFa2qxOQQsXV75DaJwIiIAIiIAIiIAIiIAIiIAIuRUCNEQERIAEpVEhBSQREQAREQAREQAREQAREwLoEJJkIiIAIJAEBKVSSAKqqFAEREAEREAEREAEREIGHIaBz40hAASniCErFREAEkoKAFCpJQVV1ioAIiIAIWJaA3t0te2sl2MMR0NkikDIEFJAiZbjrqiIgAoaAFCoGgxYiIAIiIAIiEDcCenePGyfXL6UWioAIiIAIiIAIiMDDEZBC5eH46WwREAEREAERSB4CuooIiEAcCciOLI6gVEwEREAEROAhCbilQkXd5EPedZ0uAiIgAslAQJdIGAH1cQnjprNE4DYB2ZHdZqEtERABERCBpCTglgoVdZNJ+SehukXAYwlIcBFwCQLq41ziNqgRIuC5BKTV9dx7L8lFQATiTcAtFSrxllIniIAlCUgoERABERABERABEUhkAtLqJjJQVScCImBlAi6qUJFq3JJ/dBJKBERABERABERABERABERABERABCxCwEUVKq6hGrfIPZYYIuACBKQkdYGboCaIgFsTuHnzJuYu24zPvzrq1nKo8SIgAiIgAiIgAq5JICGtclGFSkJE0TkiIAKuS0BKUte9N2qZCDwcgQoNe6BUjc6xUrOAEQ9X6V3OvnY9EuPDl2Dxmu13OaosERABERABEfA4AhLYBQhIoeICN0FNEAEREAEREAF3JlClfEmEB/dxpsA+bRNdnLRpUmNVxEgM7fVaotetCkVABERABJKDgK4hAtYjIIWK9e6pJBIBERABEbAMAfdwl3skT06UeeZJZyr+RIEkuQP5/X2ROWP6JKlblYqACIjAvwgoQwREQAQeQEAKlQcA0mEREAEREAERSDkC7u8uNzZsIWZ+uB5Hjp1Gz8BQ0EVowKjpuPLPNSfWyKgorNy4E31GTEH9tm+h9Ruj0b53MKKibpgyr/cZZ/aZt2z9DpMXc7Hqo13oPSwMFy7+hRHj55hrAVFkyQAABklJREFUsOypH846izEGy4crPjZ100WJbfnl3B/O49oQASsQkAwiIAIiIALJS0AKleTlrauJgAiIgAiIgOUIXL5yFecvXHKmq9euO2U8duoMNmz9DB36vgtvby8EtK6HzTs+x6xFG51lJs5YZhQhefPkQtc2DUCLlwPfHMNN+38Wqle9HOq9XA7fnvgRZ389z6xY6dffLmD7p1+h6+CJRnHzRvuGOH3mF1Ono+AHCzdg3NRFKP98MQzv2xZHj/+AQaNnOA5rnTIEdFUREAEREAERcGsCUqi49e1T40VABERABEQg5QnQuqRas75wpI3b9sZq1InTP6NjyzoYP6wb2rxSw7gGfXfqR1Pmsy8PY/7yLejftTn6BLyCOtXKovxzxcwxx6JxnUpoUqcysmfN5Mi66zpHtkyYN3kIXm1UDS3/Uw1UyrAgLVdCI1aiRcOX0L1dIzSsWQGdW9Uzx2NasbDs/ZOOioAIiIAIiIAIiMBtAlKo3GahrVgE3MNvP1aTtSMCIiACIhCbQDLtNajxAjbOH+tMNV4sHevKpYoXQbtmNZ15WTJnxNWr0VYs+w99Z/KrVixl1g+zCBrU0VjBsI6YsVYOHT3JLLsC5bhxDaJ70JrNn5q8u1m8mANaiIAIiIAIiIAIiMADCEih8gBAnnvY/f32PffeSXIRcF8Carl7EsiYwQe+ubI5k0+6NLEEyeuXEzbb7X4llbcXbtyMVtwfPHISBfP7IU+u7M5z/vr7inM7rhvZs2ZClkwZnMW9vb3NNmOnXPnnqtmuWqEUqld6zqSmdStj1IDX8WheX3NMCxEQAREQAREQARGILwGv+J6g8iIgAiIgAk4C2hABEXhIAmlSpwJdgiKjokxNdMEZP32J2U6sRfEnC5qqcufMirrVy8VKfr45zDEtREAEREAEREAERCC+BKRQiS8xlRcBtyagxouACIhA4hM4feZX7NjztTPt3HsozhcpUayQKRv6wUpwtp4ugyYgr18uk2eDzaxjLhiA9vB33+PHn8/FzL7vtl/u7KhW8VkET1mEnXsP4uKlv02A2wkzloJBc+97sg6KgAiIgAiIgAiIwD0ISKFyDzDKdhECaoYIiIAIiIDLE6CSomdgKBxpYNB0Z5u9bDbYbDbnvmOD+dxu3qAKni/5BGYv+QjDQ2ab4LOtGlfnIWc8FLNza7F602607B6EqXNW38rBXevHHf9G9n8dFUo/hTeHTkaVJr3Rvncwzv12AXRXuqOodkVABERABERABEQgTgSkUIkTprgXUkkREAEREAER8CQCu1a9h/2bpsdKzHMwCA/ugxH92jl2zXr04I4IG93TbKf3SYfp9jKrZ43Cp2tC0alVXZw8/bOJx2IKxFismR3kvE7QwA7OI5xB6OPFIc59bjSuU8mUtdmilTk+PmkQPDQAu1eHYlXESOxcOQlsR8zYLTxPSQREQAREQAREQATiSkAKlbiSul+5m/c7qGOWJaD7btlbK8GSi4B+RMlF2pWvEzguAkvWfoLrkVH489JlLF23A4vXbMerjaomSbN90qVBfn/fOFm1JEkDVKkIiIAIiIAIpBwBXTmRCUihkhhAowe/EqMm1eFOBHTf3eluqa0uSUA/Ipe8LcncqBJFC2LD1r1o0nEYarYcgLlLN6F7u0Zo+8rtaZaTuUm6nAiIgAiIgMsQUENEwLUJSKHi2vdHrRMBERABERABSxNoWu9FREwYALoJbVn0LlZFjAJdeCwttIQTARGwLgFJJgIuSkB2wUlzY6RQSRquqlUEREAEREAERCAeBBhLJUe2zPE4Q0VFQAQSg4DqEAER8AwCsgtOmvsshUrScFWtIiACIiACIiACIiACiU9ANYqACIiACIiAyxCQQsVlboUaIgIiIAIiIAIiYD0CkkgEREAERMDKBORKY+W7+2DZpFB5MCOVEAEREAEREAHPISBJRUAEREAEREAE4kxArjRxRmXJglKoWPK2SigREAER8BwCklQEREAEREAEREAEREAEUoKAFCopQV3XFAER8GQCkl0EREAEREAEREAEREAERMACBKRQscBNlAgikLQEVLsIiIAIiIAIiIAIiIAIiIAIiMCdBKRQuZOI9t2fABQaygI3USKIgAiIgAiIgAiIgAiIgAiIgEsT+H8AAAD//6VGatAAAAAGSURBVAMAsfsaNtWqseIAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Quality (F1) Bar Chart (vertical, best on the left)\n", + "df_sorted_f1 = df.sort_values(\"avg_f1\", ascending=False)\n", + "color_map_f1 = {engine: colors_engines_map.get(engine, \"#EDEDED\") for engine in df_sorted_f1[\"engine_name\"]}\n", + "\n", + "fig_f1 = px.bar(\n", + " df_sorted_f1,\n", + " x=\"engine_name\",\n", + " y=\"avg_f1\",\n", + " color=\"engine_name\",\n", + " color_discrete_map=color_map_f1,\n", + " title=\"Quality (F1) by Engine\",\n", + ")\n", + "\n", + "fig_f1.update_layout(\n", + " xaxis_title=\"Engine\",\n", + " yaxis_title=\"Quality (F1)\",\n", + " showlegend=False,\n", + " width=800,\n", + " height=600,\n", + " plot_bgcolor=\"#FFFFFF\",\n", + " paper_bgcolor=\"#F9F9F9\",\n", + " yaxis_range=[0.3, 0.7],\n", + " xaxis=dict(\n", + " gridcolor=\"#F9F9F9\",\n", + " tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"),\n", + " categoryorder=\"array\",\n", + " categoryarray=df_sorted_f1[\"engine_name\"].tolist(),\n", + " ),\n", + " yaxis=dict(tickfont=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\"), tickformat=\".2f\"),\n", + " font=dict(family=\"'Geist Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\", size=12),\n", + ")\n", + "\n", + "fig_f1.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Summary Table\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
EngineCoverage (Success Rate %)Quality (F1)RecallPrecision
13Scrapegraphai82.5000000.6097010.6126830.612705
3Firecrawl81.6000000.6533950.6540140.658862
5Exa76.3000000.5268010.5062110.561197
8Tavily67.6000000.5011430.4988650.508261
2Scraperapi63.5135140.4498290.4421660.466340
4Zyte62.8787880.4681740.4577690.487554
12ScrapingBee60.6407320.4505430.4436170.466697
9Apify60.2150540.4166200.4088990.430915
10Crawl4ai58.0000000.4533490.4427680.472855
11Selenium55.0403230.4045740.3969120.419732
0Scrapy54.0000000.4289880.4189810.448316
1Puppeteer53.6652840.4082570.4000460.423888
7Rest50.6000000.3549530.3462790.377394
6Playwright39.5000000.3386660.3314530.352773
\n", + "
" ], - "source": [ - "# Display summary table with key metrics\n", - "summary_df = df[['engine_name', 'success_perc', 'avg_f1', 'avg_recall', 'avg_precision']].sort_values('success_perc', ascending=False)\n", - "summary_df.columns = ['Engine', 'Coverage (Success Rate %)', 'Quality (F1)', 'Recall', 'Precision']\n", - "summary_df\n" + "text/plain": [ + " Engine Coverage (Success Rate %) Quality (F1) Recall \\\n", + "13 Scrapegraphai 82.500000 0.609701 0.612683 \n", + "3 Firecrawl 81.600000 0.653395 0.654014 \n", + "5 Exa 76.300000 0.526801 0.506211 \n", + "8 Tavily 67.600000 0.501143 0.498865 \n", + "2 Scraperapi 63.513514 0.449829 0.442166 \n", + "4 Zyte 62.878788 0.468174 0.457769 \n", + "12 ScrapingBee 60.640732 0.450543 0.443617 \n", + "9 Apify 60.215054 0.416620 0.408899 \n", + "10 Crawl4ai 58.000000 0.453349 0.442768 \n", + "11 Selenium 55.040323 0.404574 0.396912 \n", + "0 Scrapy 54.000000 0.428988 0.418981 \n", + "1 Puppeteer 53.665284 0.408257 0.400046 \n", + "7 Rest 50.600000 0.354953 0.346279 \n", + "6 Playwright 39.500000 0.338666 0.331453 \n", + "\n", + " Precision \n", + "13 0.612705 \n", + "3 0.658862 \n", + "5 0.561197 \n", + "8 0.508261 \n", + "2 0.466340 \n", + "4 0.487554 \n", + "12 0.466697 \n", + "9 0.430915 \n", + "10 0.472855 \n", + "11 0.419732 \n", + "0 0.448316 \n", + "1 0.423888 \n", + "7 0.377394 \n", + "6 0.352773 " ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.2" + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" } + ], + "source": [ + "# Display summary table with key metrics\n", + "summary_df = df[['engine_name', 'success_perc', 'avg_f1', 'avg_recall', 'avg_precision']].sort_values('success_perc', ascending=False)\n", + "summary_df.columns = ['Engine', 'Coverage (Success Rate %)', 'Quality (F1)', 'Recall', 'Precision']\n", + "summary_df\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 2 + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 } diff --git a/engines/scrapegraphai_scraper.py b/engines/scrapegraphai_scraper.py new file mode 100644 index 0000000..10abbee --- /dev/null +++ b/engines/scrapegraphai_scraper.py @@ -0,0 +1,75 @@ +import os +import sys +from pathlib import Path +from datetime import datetime +import asyncio + +# Add project root and src to Python path +project_root = Path(__file__).parent.parent +sys.path.insert(0, str(project_root)) +sys.path.insert(0, str(project_root / "src")) + +from dotenv import load_dotenv # type: ignore +from .base import Scraper, ScrapeResult +from scrapegraph_py import AsyncClient + +load_dotenv() + + +class ScrapegraphAIScraper(Scraper): + """Scrapes web pages using the ScrapegraphAI.""" + + def __init__(self): + self.api_key = os.getenv("SCRAPEGRAPHAI_API_KEY") + if not self.api_key: + raise ValueError("SCRAPEGRAPHAI_API_KEY not set in environment.") + self.client = AsyncClient(api_key=self.api_key) + + async def scrape(self, url: str, run_id: str) -> ScrapeResult: + try: + result = await self.client.markdownify(website_url=url) + + content = result.get("result") if result else "" + + content_size = len(content.encode("utf-8")) + + return ScrapeResult( + run_id=run_id, + scraper="scrapegraphai_scraper", + url=url, + status_code=200, + error=result.get("error") if result else None, + content_size=content_size, + format="markdown", + created_at=datetime.now().isoformat(), + content=content or None, + ) + except asyncio.TimeoutError: + return ScrapeResult( + run_id=run_id, + scraper="scrapegraphai_scraper", + url=url, + status_code=408, # Timeout status code + error="Timeout error", + content_size=0, + format="markdown", + created_at=datetime.now().isoformat(), + content=None, + ) + except Exception as e: + return ScrapeResult( + run_id=run_id, + scraper="scrapegraphai_scraper", + url=url, + status_code=500, + error=f"{type(e).__name__}: {str(e)}", + content_size=0, + format="markdown", + created_at=datetime.now().isoformat(), + content=None, + ) + + def check_environment(self) -> bool: + if not self.api_key: + return False + return True diff --git a/requirements.txt b/requirements.txt index e606582..7a9f263 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,4 +12,5 @@ selenium exa-py tavily-python plotly -nbformat \ No newline at end of file +nbformatscrapegraph-py +scrapegraph-py diff --git a/runs/results/firecrawl_api_quality.json b/runs/results/firecrawl_api_quality.json index ef3ffdb..dca3333 100644 --- a/runs/results/firecrawl_api_quality.json +++ b/runs/results/firecrawl_api_quality.json @@ -1,6 +1,6 @@ { - "avg_recall": 0.6785959670425444, - "avg_precision": 0.6759052477293659, - "avg_f1": 0.6757774230468403, - "success_rate": 0.809 + "success_rate": 0.816, + "avg_recall": 0.6540140533929315, + "avg_precision": 0.6588615434648126, + "avg_f1": 0.6533950271571892 } \ No newline at end of file diff --git a/runs/results/scrapegraphai_scraper_quality.json b/runs/results/scrapegraphai_scraper_quality.json new file mode 100644 index 0000000..485c482 --- /dev/null +++ b/runs/results/scrapegraphai_scraper_quality.json @@ -0,0 +1,6 @@ +{ + "success_rate": 0.825, + "avg_recall": 0.6126831447620372, + "avg_precision": 0.6127051502826065, + "avg_f1": 0.6097006642693703 +} \ No newline at end of file