Невозможно получить результаты со 2-й страницы поиска YouTube, даже если передан токен следующей страницы - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь получить около 500–1000 результатов поиска для любого запроса, поиск которого выполняется с помощью API данных YouTube v3, но когда я go для результатов на второй странице, передавая nextpagetoken, мой 'item []' оказывается пусто. Я использую приведенный ниже код. может быть так передан следующий код токена?

пожалуйста, ваш вклад очень ценится. Большое спасибо.

import sys
sys.path.append("D:\youtube_cov_exp")
import csv
from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.tools import argparser

DEVELOPER_KEY = "your api key here"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

def youtube_search(q, max_results, token):

  youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
    developerKey=DEVELOPER_KEY)
  
  search_response = youtube.search().list(
    q=q,
    type="video",
    pageToken=token,
    order = "date",
    part="id,snippet",
    maxResults=max_results,
    publishedAfter="2020-02-01T00:00:00Z",
    videoType="any"
  ).execute()


  videos = []
  #print("search response",search_response)
  for search_result in search_response.get("items", []):
    if search_result["id"]["kind"] == "youtube#video":
      videos.append(search_result)
      #print("search_result",search_result)
  try:
      nexttok = search_response['nextPageToken']
      #print(type(nexttok),nexttok)
      return(nexttok, videos)
  except Exception as e:
      nexttok = "last_page"
      return(nexttok, videos)
  

query = "recipe"
max_result = 50         # results per page limit is 50 
max_page = 2            # pages to scrap

test = []
test = youtube_search(query,max_result,"") #returns token and then search results
#print("test",test)
results = []
results.append(test[1])
print(len(test[1]))
tokens = []

tokens.append(test[0])
nextpagetoken= str(tokens[0])
count=1

while nextpagetoken != "last_page" and count<max_page:
    temp=[]
    #print(nextpagetoken)
    temp = youtube_search(query,max_result,token=nextpagetoken)
    print(len(temp))
    tokens.append(temp[0])
    results.append(temp[1])
    nextpagetoken = tokens[count]
    count+=1
    #print("results len",len(results))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...