다음은 Scrapy 로그에 400 오류가 발생하는 코드입니다. 이 코드의 논리는 다음과 같습니다. 1) 게시물 요청을 사용하여 내 Secret_Token을 가져옵니다. 2) 비밀 토큰을 사용하도록 헤더를 설정하고 API 검색 문자열에 대한 매개 변수를 정의합니다. 또한 Secret_token 헤더는 추가 요청을 위해 메타로 전달되어야한다고 생각합니다. 3) 여기에 # 2에서 요청에서 json 응답을 받아 Parse 함수가 항목으로 구문 분석 할 것으로 기대합니다. 준비 및 작동중인 요청 # 2에 대한 매개 변수 목록이있는 Parse 메서드 내의 해당 루프 이후.치료에서 Yelp API를 인증하는 방법은 무엇입니까? Secret_Token과 Search 매개 변수를 전달 하시겠습니까?
문제는 작동하지 않는다는 것입니다.) 로그가 첨부되었습니다. 나는 매개 변수와 비밀 토큰을 올바르게 전달하는지 궁금하다. 어떻게 메타에 비밀 토큰을 전달할 수 있을까?
import scrapy
import json
import requests
import pprint
class YelpSpider(scrapy.Spider):
name = "yelp"
allowed_domains = ["https://api.yelp.com"]
def start_requests(self):
params = {
'grant_type': 'client_credentials',
'client_id': '*******',
'client_secret' : '*******'
}
request = requests.post('https://api.yelp.com/oauth2/token', params = params)
bearer_token = request.json()['access_token']
headers = {'Authorization' : 'Bearer %s' % bearer_token}
params = {
'term': 'restaurant',
'offset': 20,
'cc' : 'AU',
'location': 4806
}
yield scrapy.Request('https://api.yelp.com/v3/businesses/search', headers = headers, cookies = params, callback= self.parse)
def parse(self, response):
item = response.json()['businesses']
return item