Write Pythonic Code Like a Seasoned Developer Transcripts
Chapter: Python for Humans
Lecture: Requests: HTTP for Humans

Login or purchase this course to watch this video and the rest of the course contents.
0:01 The first of the two packages that we are going to look at is the Requests package.
0:05 It turns out the Requests is the most popular package for Python,
0:10 let's look at its website really quickly.
0:13 So over here you can see HTTP for Humans, very nice,
0:16 the only non GMO HTTP library for Python,
0:19 safe for human consumption, basically the idea of Requests is the urllib, urllib2
0:24 that are in Python, are cumbersome and hard to work with and overly complicated.
0:29 Here is a reimagine of it by a guy named Kenneth Reitz
0:32 who does amazing work to make it much more delightful and easy to work with.
0:36 You'll see this package gets a little bit of traffic, so if I search for downloads,
0:39 Requests is one of the most downloaded Python packages
0:42 of all time pulling in over 7 million downloads every month.
0:46 Think about that, 7 million downloads a month.
0:49 And it's been around for really long time.
0:52 There is actually some talk about making Requests the new urllib more or less
0:57 like bringing this into the standard library to keep request more agile
1:01 they decided to keep it out, nonetheless,
1:04 Requests is even recommended over the built in url libraries, urllib, urllib2 and so on.
1:08 So let's do something awesome with Requests,
1:12 so over here we have a url to the omdbapi, that's the open movie database api,
1:16 and we can do search here and get the data back as json
1:20 and do a search for some text so we are going to ask the user
1:23 to enter some kind of text like enter the name of a movie or whatever
1:27 and it will go pull that down.
1:29 We did play with this in another example previously but we didn't focus on Requests.
1:33 So in order to do this, the first thing we have to do is get started.
1:36 We've already installed Requests, and of course,
1:40 we talked about pip and packaging and pip installing various packages
1:45 but also from PyCharm we can come over here and look at our current environment
1:48 and see that we already have Requests installed but in fact it's a little bit out of date
1:53 we won't mess with it but we could upgrade it.
1:55 If we didn't have this installed we could hit plus and say hm,
1:58 I am looking for Requests, it turns out there is a lot of stuff that's built upon Requests here,
2:05 did you know there is Requests middleware, requests guards, requests ftp, requests cloud kit,
2:10 all of these things, but here is the one that we want
2:12 and we can just hit boom install but great, it's already installed.
2:16 So let's just use it, remember import antigravity- well, here is import Requests.
2:21 So the way it works is we get a response back and we give it some url here,
2:26 and url we are going to construct from the user text,
2:28 we probably should check if response.status code is not equal to 100, print,
2:34 wow that is code such and such.
2:38 All right, so hopefully we don't end up in that case, but you never know.
2:41 Now let's go down here and actually get the data,
2:44 so we made this Request and everything was ok,
2:46 we'll say that the data is going to be response.json,
2:51 so that's going to actually finish downloading all the text and the response,
2:54 convert it from json into a dictionary so this is going to be like a movie lookup.
2:59 Now, the format of this json is a little funky, if we actually want to search data
3:03 we have to go and ask for the search text here
3:06 and then we can say for m in search and we could print out just the title of the movie
3:11 we are looking for, and that comes in as title, something like that, and great, that's it.
3:17 Access is API, download it possible even authenticate against it,
3:20 all we'd have to do is put the user name and password in here and we are done.
3:24 So this is just part of the power being leverage all these amazing packages on PyPi,
3:28 let's see if it works, that would be a good thing.
3:31 So I want to search for let's say Night Rider can we find it?
3:34 I don't see Night Rider but there sure is a bunch of stuff about nights,
3:38 let's try one more, see if Silicon Valley is there, Silicon Valley fantastic,
3:44 the Spirit of Silicon Valley, the Hermits of Silicon Valley, all those things,
3:48 and we didn't get just the title back, we got lots of data, like that,
3:53 we just happened to only be printing out the title.
3:56 So here is one piece, one example of looking just beyond the standard library
4:00 out in the broader ecosystem
4:03 where you'll find amazingly powerful packages to help you,
4:05 here it is in a graphic, we'll say import request, generate the url,
4:09 request.get given the url, check the status code, otherwise,
4:14 we'll just call that json, pull out the data boom, couldn't be easier.