Detourning the Web
ITP/NYU - Spring 2018 - Mondays from 6:30pm to 9:25pm
Detournement is the practice of "hijacking" cultural or artistic materials and reusing them to produce new works that both counter and explicate the original intent or ideology of the source material. In this class students will learn how to scrape massive quantities of material from the internet with Python, and then use that material to make satirical, critical and political projects. Each week we will cover a different web scraping technique, with production assignments relating to text, image and video.
Week 1 - Jan 22
- Intro & ground rules
- HTML/CSS basics
- Tags, attributes, classes, ids, css selectors
- Using Chrome/Firefox developer tools
- the DOM: what it is and how to modify it
- Editing a single element
- Editing multiple elements
- Editing subelements
WEEK 1 HOMEWORK
- Project One: Critique three (3) websites by altering their content using Chrome/Firefox developer tools. Save screenshots and post to the class homework wiki.
Week 2 - Jan 29
- opening video
- Screenshot presentations
- Command line basics
- Python basics
- Setting up our environments with pip and virtualenv
- Intro to web scraping with Beautiful Soup
WEEK 2 HOMEWORK
- Project Two - The List (Part 1): Scrape the web, and then create a list with the material you collect.
- Your list should be text only.
- You list should be long
Week 3 - Feb 5
- opening video
More web scraping with Beautiful Soup
- Writing to a file
- writing to json
- scraping from ajax/json
- Fox News search
- Primer on manipulating text with TextBlob
- getting words
- getting parts of speech
- most common phrases
WEEK 3 HOMEWORK
- Project Two - The List (Part 2): Create a physical version of your list: for example, print it on roll paper, make a book, make a website, make a projection, recite it, etc.
Week 4 - Feb 12
- Project #2 due
- Downloading files
- Manipulating images
- wth imagemagick
- with Pillow
- Calling external commands using subprocess.call
WEEK 4 HOMEWORK
Week 5 - FEB 26
- Web scraping with Selenium and puppeteer
WEEK 5 HOMEWORK
- Project Three - Image: Create a system that automatically manipulates images found online.
- Caliban and the Witch (chapter one)
Week 6 - Mar 5
- Automating the online self
AJAXand how to deal with it
Week 7 - Mar 19
- Project #3 due
Week 8 - Mar 26
WEEK 8 HOMEWORK
- Project Four - Make a simple bot
Week 9 - Apr 2
- Scraping and editing video
WEEK 9 HOMEWORK
- Prepare a proposal for your final project.
Week 10 - Apr 9
- Project proposals due
Week 11 - Apr 16
- Lab day
Week 12 - Apr 23
- Final presentations
- Each of the four main projects is worth 20% of your grade, and class participation is 20%.
- More than one unexcused absence is grounds for failure :(
- But no one will fail.
- It's OK to show work that has sensitive or difficult content, but if you do so give everyone a quick heads up beforehand.
- We will be critiquing each others work in the class. Be honest but friendly when critiquing other students. When receiving critique please listen and take feedback seriously.
- Feel free to use your laptop in class to take notes or follow along when I'm covering programming topics. Please do not use your laptops to do stuff on social media unrelated to the class etc.
- The only time laptop use is strictly prohibited is when other students are presenting their work.
- Turn off your phones or put them on silent during class.
- No projects about Trump.
- Learn Python The Hard Way by Zed Shaw (not actually hard)
- Really nice web scraping tutorial
- Web Scraping from "Automate the Boring Stuff"
- Beautiful Soup
- Convert cURL to requests