[python] requests

728x90

파이썬의 requests라이브러리는 HTTP 통신을 할때 주로 사용합니다. 주로 크롤링과 API등을 호출하는데 사용됩니다. 

 

앞선 글의 Beautifulsoup를 이용한 정적페이지 크롤링에서도 requests라이브러리가 사용되었습니다.

 

이 글에서는 11번가 셀러오피스 OpenAPI를 사용하여 자동로그인 및 상품의 금액 수정을 하겠습니다.

 

먼저 셀러오피스에 접속합니다.

 

 

아이디와 비밀번호를 입력하여 로그인합니다.

 

메인화면에서 아래로 스크롤하다보면 빨간색 네모박스로 채워진 OpenAPI가 있습니다.

 

해당 버튼을 클릭하면 아래와 같은 화면이 나옵니다.

 

 

서비스 등록·확인을 클릭합니다.

 

파란색 박스에 보면 API Key가 있습니다. 없으면 만드셔야합니다.

 

# 11번가 API 키 및 인증 정보 설정
api_key = 'API key'
api_secret = None
access_token = None  # 로그인 이후 얻은 엑세스 토큰

# 11번가 로그인 URL
login_url = 'https://login.11st.co.kr/auth/front/selleroffice/login.tmall'

# 로그인에 사용할 정보 (아이디 및 패스워드)
login_data = {
    'loginId': '아이디',
    'passwd': '비밀번호',
    'returnURL': 'http://www.11st.co.kr'
}

# 로그인 요청 #post 형식
response = requests.post(login_url, data=login_data, auth=(api_key, api_secret))

if response.status_code == 200:
    # 로그인 성공
    print('로그인 성공!')

    # 엑세스 토큰을 얻어서 이를 이용하여 API 요청 가능
    result = response.text
    #print("결과", result)
    # access_token = response.json().get('access_token') # 엑세스 토큰이 있는 경우
    # print(f"토큰: {access_token}")
    
    prdNo = input("상품코드: ")

    selPrc = input("상품가격: ")


    # GET 요청 보내기
    url = f'http://api.11st.co.kr/rest/prodservices/product/price/{prdNo}/{selPrc}'  # RESTful API 엔드포인트 URL
    print("url", url)
    headers = {'openapikey': api_key}  # API 키를 헤더에 추가

    response = requests.get(url, headers=headers)

    # 응답 처리
    if response.status_code == 200:
        print("성공")

    else:
        print("실패: ", response.status_code)

else:
    # 로그인 실패
    print('로그인 실패:', response.status_code)

 

API Key를 정상적으로 입력했다면 로그인 성공이라는 메시지가 출력됩니다.

 

 

상품 가격을 변경하는 방법은 위에 주석 처리한 방법대로 사용하시면 됩니다.

 

RestAPI의 자세한 설명은 셀러오피스의 OPEN API CENTER에서 찾으시면 됩니다.

 

RestAPI를 사용할때에도 API Key가 필요하므로 위 코드에서 처럼 headers에 추가하면 됩니다.

 

샘플코드는 아래사이트에서 확인하실 수 있습니다.

 

https://openapi.11st.co.kr/jsp/apimanual/main/whatapi.html

 

OpenAPI 란 무엇인가요?

Open API란 자사의 API를 외부에 공개한 것으로 일반적으로 웹서비스(Web Services)형태로 공개한 것을 말합니다. 위키피디어에서는 API를 '응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래

openapi.11st.co.kr

 

 

 

'PYTHON Programming > Python' 카테고리의 다른 글

[python] namedTuple  (0) 2024.05.23
[python] GUI 프로그래밍(tkinter)  (0) 2024.05.22
[python] exe 파일 만들기(pyinstaller)  (0) 2024.05.22
[python] 스케줄  (0) 2024.05.22
[python] 엑셀 자동화(openpyxl)  (0) 2024.05.22