sure that the download has actually worked before your program continues saving downloaded files to the hard drive from hereyou can save the web page to file on your hard drive with the standard open(function and write(method there are some slight differencesthough firstyou must open the file in write binary mode by passing the string 'wbas the second argument to open(even if the page is in plaintext (such as the romeo and juliet text you downloaded earlier)you need to write binary data instead of text data in order to maintain the unicode encoding of the text to write the web page to fileyou can use for loop with the response object' iter_content(method import requests res requests get(res raise_for_status(playfile open('romeoandjuliet txt''wb'for chunk in res iter_content( )playfile write(chunk playfile close(the iter_content(method returns "chunksof the content on each iteration through the loop each chunk is of the bytes data typeand you get to specify how many bytes each chunk will contain one hundred thousand bytes is generally good sizeso pass as the argument to iter_content(the file romeoandjuliet txt will now exist in the current working directory note that while the filename on the website was rj txtthe file on your hard drive has different filename the requests module simply handles downloading the contents of web pages once the page is downloadedit is simply data in your program even if you were to lose your internet unicode ncodings unicode encodings are beyond the scope of this bookbut you can learn more about them from these web pagesjoel on softwarethe absolute minimum every software developer absolutelypositively must know about unicode and character sets (no excuses!)pragmatic unicodeweb scraping