• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

json, data = json.loads(response.body_as_unicode()) 부분에 문제가 있는 것 같습니다.

22.05.26 16:59 작성 조회수 346

0

5분 19초에서 진행하고 있는 부분에 대한 질문입니다.

 

cmd 에서 실행하면 ,

2022-05-26 16:50:53 [scrapy.core.scraper] ERROR: Spider error processing <GET https://openapi.naver.com/v1/search/shop.json?query=iphone> (referer: None)

이러한 오류코드가 나타납니다. 

 

navershopapi_item.py 에서 

    def parse(self, response):
        data = json.loads(response.body_as_unicode())
        for item in data['items']:
            print(item['title'])

중 이 코드,

data = json.loads(response.body_as_unicode())

의 boby_as_uncode() 이 부분이 제대로 작동하는 것 같지 않아요. (보통 색이 바뀌는데 안 바뀌어요)

 

처음에는 제 코드에 오타나 탈자가 있을 것 같아서 한참을 찾아보다, 정 못찾아서 제공해주신 파일에서 client_idclient_secret을 제것으로 바꾸어서 실행했으나 같은 오류가 나타납니다.

기존에 있었던 질문(json 으로 저장이 안되네요)과 유사한 오류 인것 같아서,  

pip install --upgrade pip 를 한번 한 후에, 다시 시도해보셔도 좋을 것 같긴 합니다.

를 해봤으나, 같은 오류가 반복됩니다. 

 

여기서 부터 막혀서 더 진행이 안되고 있어요 ㅠㅠ 

 

답변 3

·

답변을 작성해보세요.

2

ohwhy님의 프로필

ohwhy

2022.09.05

data = json.loads(response.text)로 수정해서 실행하면 한글 문제없이 에러 없이 잘 출력 됩니다. 제 생각엔 settings.py에서 FEED_EXPORT_ENCODING = 'utf-8' 설정을 했기 때문에 response.body_as_unicode()가 필요 없이 response.text로 하면 될 것 같습니다.

0

phantele47님의 프로필

phantele47

질문자

2022.05.30

전부 지우고 다시 해봤는데 안돼요 살려주세요

0

안녕하세요.

혹시나 해서, 제공해드린 파일을 저도 동일하게 다운로드받아서, 제 client id/secret 만 바꾸고, navershopapi_item.json 파일을 삭제하고, 다시 실행을 해보았는데, 정상적으로 저장이 되었어요.

 

보여주신 에러는 그 이후의 메세지가 더 중요할 것 같긴 하거든요. 왜냐하면 해당 API 에서 보통 에러가 나는 경우는 권한이 없거나, API 가 오타가 있어서, 다른 주소라서, 해당 API 가 없다라거나 이런 HTTP 에러 코드 등이 나올 가능성이 높거든요.

자신의 client ID/secret 를 정확히 넣은 것인지도 다시 한번 확인이 필요하긴 한데요. 꼼꼼히 확인하셨다면, 이번에는 자신의 client ID/secret 을 가진 해당 애플리케이션(네이버에서는 신청한 각 권한을 애플리케이션이라고 하는 것 같아요)의 API 설정을 확인해보시면 좋을 것 같습니다. 각 세부 권한이 있어야 하는데, 해당 API 는 '검색' 권한이 있어야 하고, 이 부분을 어떻게 신청하는지 본 강의에서 보여드린 부분이 있어서, 이 부분도 다시 한번 확인해보시면 좋을 것 같아요. 그래서 해당 API 가 정상동작하도록 하면, 다른 코드는 제공해드린 코드로 오늘 테스트를 해봐도 이슈는 없었거든요.

감사합니다.