A lot of information is freely available on the web, but not a lot of it is in forms that computers find useful to read. A common use of regular expressions is to understand or parse data from a human-centric view like a webpage into a computer-centric view like CSV (comma-separated values). One source of data is the Richmond Times-Dispatch’s summary of Virginia state salaries’s, obtained using the state’s Freedom of Information statute. To avoid overloading the newpaper’s website with hundreds students testing their code, we have a mirror of the 2018–2019 UVA salary data you can have your code access on our servers for this assignment. http://cs1110.cs.virginia.edu/files/uva2018/ When you visit a page, you see a rendering of the content, but under the hood most web pages are written in a language called HTML. Like Python, this is a text-based representation that describes what the computer is supposed to do. Unlike Python, it is a markup language, not a programming language, meaning it is interested primarily in describing data rather than specifying processes. The nuances of HTML are not important for our task; all you need to do is write regular expressions to find specific information within it. You can view the HTML of any web page using the “view source” option of your web browser (typically either via the keyboard shortcut Ctrl+U or Cmd+Opt+U). The source is what urllib.request will retrieve, what your regular expressions will need to look at, and what we discuss below.