Okay, so yesterday I was trying to figure out a good way to track tennis results from the Cincinnati tournament. It started out kinda messy, but I think I got something workable now.

First thing I did was just Google “Cincinnati tennis results”. Duh, right? But seriously, you gotta start somewhere. I landed on a couple of sports news sites, like ESPN and some tennis-specific ones. They had scores, but it was all scattered around, you know?
What I really wanted was something in a table, something I could easily copy and paste or, even better, get as a CSV. So, I started digging around those sites, looking for a “results” or “schedule” page. Found a few, but they were all pretty clunky to use. Lots of ads, pop-ups, that kinda crap.
Then I thought, “Maybe there’s an official tournament site?” Bingo! Found the official Western & Southern Open website. It actually had a decent results section. Not perfect, but way better than the news sites. The problem was that the data was still embedded in the HTML. I couldn’t just download a CSV or anything.
So, I decided to try some web scraping. I’ve messed with that before, so I figured, why not? I fired up Python and used the `requests` library to grab the HTML from the results page. Pretty straightforward.
Next up was parsing the HTML. I used `BeautifulSoup` for that. It’s a lifesaver, honestly. I poked around the HTML structure using the browser’s developer tools (right-click, “Inspect Element”). Figured out which HTML tags contained the match scores and player names.

This part was kinda tedious. I had to write code to find the right `