You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.8 KiB
Python
79 lines
2.8 KiB
Python
5 years ago
|
import requests
|
||
|
|
||
|
|
||
|
|
||
|
def ship_detail(ShipName):
|
||
|
url = 'https://swapi.co/api/starships'
|
||
|
r = requests.get(url).json()
|
||
|
res = r['results']
|
||
|
ship_absolute = ''
|
||
|
for ship in res:
|
||
|
if ship['name'] == ShipName:
|
||
|
ship_absolute = ship
|
||
|
break
|
||
|
return[ship_absolute['name'], ship_absolute['model'], [requests.get(film).json()['title'] for film in ship_absolute['films']]]
|
||
|
|
||
|
def species_detail(SpeciesName):
|
||
|
url = 'https://swapi.co/api/species'
|
||
|
r = requests.get(url).json()
|
||
|
res = r['results']
|
||
|
species_absolute = ''
|
||
|
for specie in res:
|
||
|
if specie['name'] == SpeciesName:
|
||
|
species_absolute = specie
|
||
|
break
|
||
|
list_title = [requests.get(film).json()['title'] for film in species_absolute['films']]
|
||
|
list_id = [requests.get(film).json()['episode_id'] for film in species_absolute['films']]
|
||
|
sort = sorted(zip(list_id, list_title))
|
||
|
return [species_absolute['name'], species_absolute['classification'], species_absolute['designation'], requests.get(species_absolute['homeworld']).json()['name'], sort]
|
||
|
|
||
|
|
||
|
def person_detail(Name):
|
||
|
url = 'https://swapi.co/api/people'
|
||
|
r = requests.get(url).json()
|
||
|
res = r['results']
|
||
|
person_absolute = ''
|
||
|
for person in res:
|
||
|
if person['name'] == Name:
|
||
|
person_absolute = person
|
||
|
break
|
||
|
|
||
|
list_title = [requests.get(film).json()['title'] for film in person_absolute['films']]
|
||
|
list_id = [requests.get(film).json()['episode_id'] for film in person_absolute['films']]
|
||
|
sort = sorted(zip(list_id, list_title))
|
||
|
return [person_absolute['name'], person_absolute['gender'], requests.get(person_absolute['homeworld']).json()['name'], sort]
|
||
|
|
||
|
def Crawl(Film_Title):
|
||
|
url = 'https://swapi.co/api/films'
|
||
|
r = requests.get(url).json()
|
||
|
res = r['results']
|
||
|
film_absolute = ''
|
||
|
for film in res:
|
||
|
if film['title'] == Film_Title:
|
||
|
film_absolute = film
|
||
|
break
|
||
|
print(film_absolute['opening_crawl'])
|
||
|
|
||
|
|
||
|
def film_detail(FilmIdentifier):
|
||
|
url = 'https://swapi.co/api/films'
|
||
|
r = requests.get(url).json()
|
||
|
res = r['results']
|
||
|
film_absolute = ''
|
||
|
for film in res:
|
||
|
if film['title'] == FilmIdentifier or film['episode_id'] == FilmIdentifier:
|
||
|
film_absolute = film
|
||
|
break
|
||
|
list_char = [requests.get(char).json() for char in film_absolute['characters']]
|
||
|
list_ship = [requests.get(char).json() for char in film_absolute['starships']]
|
||
|
return [film_absolute['title'], film_absolute['director'], film_absolute['episode_id'], sorted([ch['name'] for ch in list_char]), sorted([ch['name'] for ch in list_ship])]
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
print(ship_detail('Executor'))
|
||
|
print(species_detail('Hutt'))
|
||
|
print(person_detail('Luke Skywalker'))
|
||
|
print(film_detail(3))
|
||
|
print(film_detail('A New Hope'))
|
||
|
Crawl('The Phantom Menace')
|