This project used Python and Beautiful Soup to scrape the Denver Art Museum’s collections website ( For this project, I focused on the works of art in their “Native Arts” department, which contains artifacts and works of art from indigenous cultures of North America and the South Pacific, as well as ethnic groups in Africa.

For this project, I used six modules:

  1. Beautiful Soup
  2. Requests
  3. JSON
  4. Re
  5. Time
  6. Randint

I’ve pulled out relevant information about each of these objects including:

  • Title
  • Object Number
  • The date the work was created
  • The culture associated with the object or the artist
  • Provenance dates
  • Exhibition history

I used two functions to run two regular expressions, the first to identify the object number from the site URL, and the second to isolate the provenance dates rather than the whole descriptive text.

This information was all saved in the file "data.json".

After this information was compiled, I used data.json to write a CSV file "dataviz.csv" to create visualizations in Tableau.

I also used data.json to write another CSV file. Using, I compiled a list of each of the cultural terms used in the collection. This list was intended to be used to create a map using the API. In order to do this, the cultures needed to be written to a csv file to match the form used in their list of “Territory Slugs.” While it was possible to do this for some of the cultures programmatically, others needed to be compared by hand. This was due to different names being used for the same culture between the two resources as well as differing levels of specificity.

The completed list of relevant territory slugs, all instances of names being changed, as well as lingering questions or issues with the mapping were all recorded in a text file (native_land_notes.rtf). As does not currently support mapping for groups outside of the US and Canada, a secondary map was created in Tableau to map the groups from Mexico, Africa, and the South Pacific. The list of territory slugs was then amended to the mapping iframe ( The final Native-Land map, as well as the map showing the international groups, and the other collections information charts can be found on the Tableau Public dashboard.