inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Sử dụng thực tế 100% Python của Tiến sĩ Nam từ cơ bản

Làm chương trình thông báo qua KakaoTalk khi có hot deal

2020 6월 14일 질문

704

wooseong yang

2 câu hỏi đã được viết

2

안녕하세요! 강의 항상 잘 듣구 있습니다

크롤러 관련 질문을 하려니 요지를 짚어서 질문 하는것도 좀 가다롭네요 ㅠㅠ

먼저 카카오 개발자 센터에서 애플리케이션을 생성했고

개인정보 보호항목의  프로필정보 동의를 했고

접근권한의 관리항목중 카카오톡 메세지 전송 권한까지 동의 했습니다 그후 바뀐 Rest api개발 항목에서 테스트 코드를 작성해 강의와 동일한 코드를 작성했고

access token 도 동일한 권한으로 발급받아 진행했지만

{"msg":"access token should not be null or empty","code":-2}

-2에러코드만 계속해서 발생합니다 토큰을 제대로 기입까지 했는데도 말입니다 혼자서 나름 해결책을 찾으려고 강구해봤지만

도저히 해결이 안되니 답답해서 질문 드립니다! 아래는 코드입니다

import requests
from bs4 import BeautifulSoup
import json


KAKAO_TOKEN="WVDoVQilFDE-TzxCbChnF0p8X5-PLA8JmLxrDAo9dJcAAAFyssW9Xw"

header = {"Authorization" : "Bearer" + KAKAO_TOKEN}
url = "https://kapi.kakao.com/v2/api/talk/memo/default/send"
post={
    "object_type""text",
        "text""연습메시지",
        "link": {
            "web_url""https://developers.kakao.com",
            "mobile_web_url""https://developers.kakao.com"
        },
        "button_title""바로 확인"
}
data = {"template_object" : json.dumps(post)}

r = requests.post(url,headers=header,data=data)
print(r.text)

def hotdeal(keyword):
    url = "https://slickdeals.net/newsearch.php?src=SearchBarV2&q={}&searcharea=deals&searchin=first&pp=20".format(keyword)

    r = requests.get(url)
    bs = BeautifulSoup(r.text,"lxml")
    rows = bs.select("div.resultRow")

    result=[]
    for r in rows:
        link=r.select("a.dealTitle")[0]
        href=link.get("href")
        if href is None:
            continue
        href = "https://slickdeals.net/" + href
        title = link.text
        price = r.select("span.price")[0].text.replace("$","").replace("from","").strip()
        if price.find("/")>=0 or price == "":
            continue
        price = float(price)
        hot = len(r.select("span.icon-fire"))
        result.append((title,href,price,hot))
    return result
#print(hotdeal("ipad"))

python 웹-크롤링

Câu trả lời 3

1

nambaksa

이런 오류가 알고나면 별거 아닌데 참 시간을 많이 소비하게 되는 오류중 하나입니다.

카카오개발자 페이지 공식 메뉴얼에 보시면 로그인 예제가 나오는데 Authorization 키의 값으로 Bearer {access_token} 을 넘겨주게 되어있습니다. 그러나 작성하신 코드를 보면

KAKAO_TOKEN="WVDoVQilFDE-TzxCbChnF0p8X5-PLA8JmLxrDAo9dJcAAAFyssW9Xw"

header = {"Authorization" : "Bearer" + KAKAO_TOKEN}

위 처럼 되어있는데.. 이걸 프린트 해보면

{'Authorization': 'BearerWVDoVQilFDE-TzxCbChnF0p8X5-PLA8JmLxrDAo9dJcAAAFyssW9Xw'}

위처럼 나옵니다.

header = {"Authorization" : "Bearer" + KAKAO_TOKEN}     // 오류

header = {"Authorization" : "Bearer  " + KAKAO_TOKEN}    // 정상

위처럼 Bearer 다음 한칸을 띄워주셔야

{'Authorization': 'Bearer WVDoVQilFDE-TzxCbChnF0p8X5-PLA8JmLxrDAo9dJcAAAFyssW9Xw'}

위처럼 요구 조건을 만족하게 됩니다.

0

wooseong yang

와 공백 때문에 결과가 출력이 안되던 거였군요 ,, 이런 ㅠ

0

wooseong yang

아,,,, ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 제가 아직 갈길이 멀었군요 

친절하게 알려주셔서 감사합니다 재작성해보도록 하겠습니다

38강 = 연산자 더하고 빼기

0

60

2

주석처리

0

116

1

함수의 파라미터값 msg

0

155

1

강의자료 이미지 안나옴

0

239

3

강의자료 질문 두번째

0

165

3

강의자료 관련 질문

0

116

1

파이썬 예외 처리 try / except 파일 처리 코드가 실행이 안됩니다.

0

235

1

소수 너무 어려워요

0

245

1

imagefont 함수 사용

0

239

1

pylint

0

357

1

add 함수 문의 ㅠㅠ

0

283

1

형식 문의드립니다.

0

209

1

변수 명을 왜 src, tar로 하셨는지 궁금합니다.

0

602

1

숫자야구 코드를 짜 봤는데 뭔가 이상합니다.

0

253

1

zsh: command not found: pylint

0

269

1

텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ

0

546

1

질문드립니다.

1

374

2

list.reverse() 출력에 대해서 질문있습니다.

1

433

1

데코레이터 함수 및 동작시간 질문입니다.~

1

323

2

opencv 사용하면서 궁금한점 (해상도)

1

781

1

질문드립니다.

1

299

1

아래 오류가 뜨면서 vscode가 컴파일이 되지 않는데.. 혹시 왜이럴까요?

1

445

1

크롤링안되는 현상 문의 드립니다.

1

421

1

파이썬 크롤링 관련 문의

1

277

1