inflearn logo
강의

Course

Instructor

Easy Python Advanced Crawling [Scrapy, Selenium, Headless Chrome]

Various Uses of Scrapy: Crawling Naver Open API with Scrapy 2

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

596

phantele47

3 asked

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 를 한번 한 후에, 다시 시도해보셔도 좋을 것 같긴 합니다.

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

 

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

 

bigdata scrapy 웹-크롤링 selenium

Answer 3

2

ohwhy

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

0

phantele47

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

0

funcoding

안녕하세요.

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

 

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

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

감사합니다.

[REST API] data의 교환방식 질문

1

663

1

headless chrome 오류 문의

0

1486

1

Selenium 처리 속도 관련 문의드립니다.

0

1950

1

동적 웹사이트에서 element가 선택되지 않는 문제에 관해 질문드립니다

0

686

1

webdriver manager

0

438

1

__init__() got an unexpected keyword argument 'service' 에러 질문드립니다.

1

11707

1

Jupiter NoteBook 파일과 PDF 파일은 어디서 다운로드 받을 수 있나요?

0

443

1

scrapy option질문

1

243

1

response.css 질문드립니다.

0

367

1

scrapy 크롤링 수행시 ffi.callback() 에러가 발생합니다

0

396

1

selenium으로 여러페이지 수집시 질문

0

380

1

연습6 모범 코드: 로그인 시나리오 해보기

0

269

1

셀레니움 문법 업그레이드 , find_element_by_tag_name 오류

3

2830

1

셀레니움 버전 변경으로 인한 코드 변경

0

1283

1

headless error

0

439

1

질문있습니다!

0

463

1

안녕하세요 선생님! 질문있습니다.

0

231

1

selenium&scrapy문의

0

279

1

아래분(phantele47)과 동일한 문제가 발생해서 문의드립니다.

0

908

6

ip 차단을 피하려면 어떻게 해야 하나요?

0

3353

2

start_urls = ['']가 제공해주신 것과 다르게 작동합니다.

1

278

2

웹크롤링이 상대방 서버에 부담이 될 때는 어떻게 하나요~?

0

680

1

scrapy 윈도우버전의 설명은 따로 없나요??

0

325

1

json 으로 저장이 안되네요

0

2129

1