Python Получить запрос Все страницы - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть код, с которым я работаю:

import requests
import json

def getMovieTitles(substr):
titles = []  
data = requests.get("https://jsonmock.hackerrank.com/api/movies/search/?Title={}".format(substr))  
response = json.loads(data.content.decode('utf-8'))    
for page in range(0, response["total_pages"]):       
    page_response = requests.get("https://jsonmock.hackerrank.com/api/movies/search/?Title={}&page={}".format(substr, page + 1))    
    page_content = json.loads(page_response.content.decode('utf-8'))
    #print ('page_content', page_content, 'type(page_content)', type(page_content))    
    for item in range(0, len(page_content["data"])):           
         titles.append(str(page_content["data"][item]["Title"]))  
titles.sort()  
return titles

print(getMovieTitles("spiderman"))

Моя проблема в том, что он возвращает только заголовки первой страницы, а не второй. Буду признателен, если я пойду не так

1 Ответ

0 голосов
/ 06 февраля 2020
def getMovieTitles(substr):
    import requests
    url = "https://jsonmock.hackerrank.com/api/movies/search/?Title="

    response = requests.get(url)
    data = response.json()
    total_page = data['total_pages']
    per_page = data['per_page'] 
    titles = []

    for page in range(1, total_page + 1):
        content = requests.get("https://jsonmock.hackerrank.com/api/movies/search/?Title={}&page={}".format(substr,page)).json()
        for per_p in range(per_page):
            titles.append(content['data'][per_p]['Title'])

    return sorted(titles)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...