I built a free Tampermonkey userscript called Combo Sports Export because I got tired of copying box scores into a spreadsheet by hand. It lets you export sports data to CSV or PDF from three sports reference sites in one click, with no sign-up, no subscription and no complicated install.
If you have ever tracked NFL results for a fantasy league, pulled MLB box scores for a betting model, or followed FotMob fixtures for a European league, you know the routine. The numbers are right there on screen. Getting them into a file you can actually work with is slow, repetitive and easy to get wrong. One mistyped score in row forty throws off everything downstream.
This is the tool I wrote so I would stop doing that.
What Combo Sports Export does
The script adds two buttons to supported pages. Press one, and it reads every game currently visible on that page and writes it to a file. That is the whole interaction.
The three sites it supports
It runs on Pro Football Reference, Baseball Reference and FotMob. All three are useful to read and awkward to extract from. The tables are dense, the formatting shifts between pages, and copying by hand introduces mistakes at exactly the moments you are least likely to notice them.
What it captures
For every visible game, the script picks up the final score, the game status — Final, Live or Scheduled — the winning team or player, and any additional stats the site happens to be displaying.
It reads the page as it appears in your browser. What you see is what gets exported. Run it mid-afternoon on a full slate and the file reflects that exact moment: which games are live, which have finished, which have not started. That is genuinely useful for a snapshot, and it is also the tool's main limit. It captures a page, not a database.
How to export sports data to CSV or PDF
Two buttons, two formats, aimed at two different jobs.
The CSV file
CSV is the format for anything you plan to work on further. The file opens cleanly in Excel, Google Sheets or any other spreadsheet software, with the columns already organised around what the script captured, so you can sort, filter and calculate straight away instead of spending the first twenty minutes cleaning up a paste.
This is the export I use most. If you are building a model, keeping a season archive, or feeding numbers into something else, start here.
The PDF report
The PDF is for reading and sharing rather than calculating. It generates with a cover page, stat boxes summarising the key numbers, and clean tables of game data underneath.
The part worth knowing: the text in the PDF is real text, not a flattened image. You can select it, search it and copy out of it. A screenshot pasted into a document looks similar and is useless the moment you need one number out of it.
Installing the Tampermonkey userscript
Setup takes a few minutes and involves one extension and one file.
What a userscript actually is
A userscript is a small piece of JavaScript that runs on pages you already visit, in your own browser, after the page loads. It does not install a program on your computer and it does not send the page anywhere. It just modifies what you are already looking at — in this case, by adding two buttons.
Tampermonkey is the browser extension that stores userscripts and decides which sites each one is allowed to run on. You need it installed before the script can do anything.
Setup in four steps
- Install Tampermonkey from the official Tampermonkey extension site. It is available for most major browsers.
- Add the Combo Sports Export script to Tampermonkey.
- Open Pro Football Reference, Baseball Reference or FotMob.
- The export options appear on the page. Press CSV or PDF and the file generates automatically.
If the export buttons don't appear
Almost every install problem I have seen comes down to one of four things.
Tampermonkey is installed but switched off — check the extension is enabled, not just present. Recent versions of Chrome also ask you to turn on Developer Mode in the extensions settings before Tampermonkey can run scripts at all, which catches a lot of people out. Third, the script only activates on URLs it recognises, so a supported site's homepage may not trigger it when a scores page will. And finally, the buttons are added after the page finishes loading, so give a slow page a moment before deciding it failed.
Where the script stops working
I would rather tell you the limits up front than have you find them.
The obvious one is site coverage. Combo Sports Export handles three sites. If you need to scrape sports stats from anywhere else — a league's own site, a bookmaker, a stats provider, a regional football federation — this script will do nothing at all on those pages. It is not a general-purpose tool wearing a sports costume. It targets three specific layouts.
The second limit follows from the first. A userscript reads a page's structure, so when a site redesigns that structure, the script stops finding what it expects. Nothing breaks loudly. The buttons still appear, the export still runs, and the output is empty or wrong. Anything reading a live page carries that risk, mine included.
The third is scope. It exports what is visible on the page you are on. It does not page through a season, run on a schedule, or write into a database. Those are different problems requiring a different build.
Who I built this for
Sports fans who keep personal records of results and want an archive without the typing. Bettors and fantasy players who check stats often enough that saving twenty or thirty minutes per session compounds across a season — that figure is my own experience of doing it by hand, not a measured average.
There is also a third group I did not plan for and now write for deliberately: people learning how browser automation works. This is a small, low-stakes, readable example of a script reading a page's structure, pulling out specific values and reformatting them into a file. If you are working through that subject, a working tool you can open and inspect beats a tutorial. There is more in the same vein on the DatafetchPro blog.
Before you run it on any site
Two things worth doing first.
Check the terms of service of any site you point a script at. Some have explicit policies on automated data collection, and a robots.txt file at the root of a domain will tell you what the site asks automated tools not to touch — Google's introduction to robots.txt explains how to read one. I can tell you how a script behaves technically. Whether running it on a given site is appropriate is your call, not mine.
Second, read any userscript before you install it, including this one. A userscript runs on pages you visit with access to what is on them. That is a reasonable thing to grant a script you have looked at, and an unreasonable thing to grant one you have not.
When you need a scraper for a different site
Most people who find this article need data from a site that is not one of the three. That is the job I do.
I build custom scrapers and browser automation to order — Python and Playwright bots for anything involving logins, pagination or JavaScript-heavy pages; no-code macros in UI.Vision RPA when you want something you can run yourself; Chrome extensions and Tampermonkey userscripts like this one, built for your target site. Output goes wherever you need it: CSV, SQLite, PostgreSQL, Google Sheets or Airtable. If it needs to run every morning rather than when you remember, I set up scheduling and webhooks so the file arrives without you doing anything.
I work through Fiverr, and I am a one-person operation, so you talk to the person writing the code. You can see the range of what I take on under my browser automation services, read how I scope and price a build on how I work and what I charge, or hire me to build a custom scraper.
Tell me the site and what you need out of it. I will tell you whether a userscript covers it or whether it needs something heavier.
