Use a Python Generator to Crawl the Star Wars API

InstructorWill Button

Share this video with your friends

Send Tweet

In this lesson, you will be introduced to Python generators. You will see how a generator can replace a common function and learn the benefits of doing so. You will learn what role the yield keyword provides in functions and how it differs from a return. Building on that knowledge, you will learn how to build a generator to recursively crawl an API (swapi.co) and return Star Wars characters from "The Force Awakens".

Eisson Alipio
~ 6 years ago

that API is so cool and your explanation is really good! thank you Will

Will Buttoninstructor
~ 6 years ago

My pleasure! I'm excited that you found it helpful!

Ondra Geršl
~ 5 years ago

Nice example of iterator over HTTP API, thanks!

Could you please review my custom solution of function crawl?

def crawl(link):
  while link:
    response = requests.get(link)
    api_results = response.json()

    for character in api_results['results']:
      if 'https://swapi.co/api/films/7/' in character['films']:
        yield character['name']
    
    link = api_results.get('next')