Search-Script-Scrape: Web scraping exercises in Python 3 for data journalists
github.com
github.com
1. Don't waste your time on this stuff if you have no interest/aptitude for it. I see people being pressured into it when it's not the right fit. The kind of people who will have success with this, are the Nate Silver's of the world who are really domain experts dabbling in journalism.
2. Being a journalist gives you access to data and access to experts. Bring the two together whenever you can. It takes time and skill to develop that access. And in most cases, it's time better spent than learning python. Matt Taibbi is a good example of this. He was able to make sense of something complex (2008 meltdown) by bring the data and the experts together. No Python necessary.
So there's a decent sized group of technically-apt students at Stanford who are interested in journalism. And my advice to them would be to at least intern as traditional reporters, as there's no better way to learn the work of developing access and sources (as well as interviewing and writing on deadline!).
That said, there are opportunities to quickly explore a domain if you're skilled at data collection and analysis. One of the best examples I can think of is this writeup by a couple of data reporters about their investigation into Florida cops:
http://ire.org/blog/on-the-road/2011/12/20/behind-story-trac...
> This was a case where the government had this wonderful, informative dataset and they weren’t using it at all except to compile the information. I remember talking to one person at an office and saying: “How could you guys not know some of this? In five minutes of (SQL) queries you know everything about these officers?” They basically said it wasn't their job. That left a huge opportunity for us.
This scenario -- in which the data is freely available but no one thinks to simply collect it into a spreadsheet -- is just the tip of the iceberg of data work that needs to be done...but I'd be lying if I said that this kind of low-hanging fruit was rare...There's plenty of information out there that's just begging for efficient examination...to paraphrase a classic adage, the problem today is not that we lack information, but we lack ways of filtering and understanding it.
I'll leave aside the debate of how worthwhile it is to try to teach programming to traditional journalists -- it's definitely not easy work...but there's a great deal of potential in teaching comsci students about civic and journalistic issues and how specifically to apply their skills. I turned out OK after first spending a few years as a newspaper reporter, but I think I missed some opportunities to hit bigger...but back then, I had no concept of mixing my programming background with my journalism.
All I'll add is, it's good to be aware of the contradiction all that data presents. The contradiction shows up in your post and I have a feeling you are aware of it.
"Quickly exploring a domain" and "efficiently examining the data" are inherently contradictory. To resolve that contradiction (going back to my previous post) is to (a)get an expert involved as quickly as possible or (b)become the expert.
And its healthy for someone starting out (be it a journo dabbling in compsci or a programmer dabbling in journalism) to keep asking themselves (based on their aptitude\motivational levels) which road they are taking.
For example, usajobs.gov is a consumer-friendly jobs search site. You could find the number of librarian jobs by manipulating the web form...or you could do a little looking around and see that there's an API:
And just as importantly, there's an official taxonomy for federal jobs: https://www.opm.gov/policy-data-oversight/classification-qua...
So being able to look at a website and deduce what might be behind it is good enough...and is actually what I would do in a real-world situation rather than just trying to reverse engineer a site.
And there's the increasingly common situation in which the website loads data client-side, such as analytics.usa.gov...and so inspecting the network traffic and working with the JSON files is the only way to collect the data displayed on the website.