본문 바로가기

로스트아크/로스트아크 편하게하기

구글 스프레드시트에서 로아 편하게 하기 1탄: 거래소 가격 검색하기

반응형

거래소 긁어오기를로아 API를 사용해서 수정했습니다.

스프레드시트 주소는 아래 확인하세요~

 

https://giveme100.tistory.com/130

 

구글 스프레드시트에서 로아 편하게 하기 6탄: 로아API 사용해서 거래소 가격 긁어오기

안녕하세요. 아직도 로아를 열심히 즐기고 있는 원다게입니다. 작년에, 로아 공홈에서 거래소 가격을 크롤링해서 긁어오는 프로그램을 만들고 공유했었는데요, https://giveme100.tistory.com/3 구글 스

giveme100.tistory.com

 

 

 

안녕하세요.

로스트아크를 즐기고 있는 카제로스서버 '원래다른게임을하려고했다' 입니다.

 

로스트아크를 하다보면,

하급 오레하, 중급 오레하 등 강화용 재료를 만들어야 할 때가 있죠....굳이 강화용 재료만이 아니더라도 만찬이든 지도든,,, 재료로 만들어서 사용해야 하는 물품이 있습니다.

 

그러나,그럴때마다 경매장을 하나씩 검색해서,사는게 이득일지, 만드는게 이득일지... 또는 얼마나 이득일지..찾아보는게 쉽지만은 않습니다.

 

 

이를 편하게 하기 위해스프레드시트 내 셀에'=get_market_chip("물품명")' 이라는 함수를 통해간편하게 사용할 수 있도록 스크립트를 하나 만들어 보았습니다.

간단한 스크립트, 함수 만들기!!

이렇게 넣으면...

결과 값

이렇게 금액이 바로 나오지요...

 

저는 간단하게 쓸 때 이용하고 있습니다.

 

해당 스크립트가 들어간 엑셀파일은 아래의 링크에 있습니다.

(공유가 안되면 댓글 주세요)

 

https://docs.google.com/spreadsheets/d/18D6a3KRiJles1HLp3RYzuJiXtTpfy3mzqZwWrSJiNyg/edit?usp=sharing

 

 

위의 링크로 들어가셔서,

사본만들기를 통해 본인의 파일로 사용하시면 됩니다.

(사본만들기 방법도 추후 포스팅 해야할 것 같군요...)

 

 

물론 저도 해당 분야에서 일하는 사람은 아닌지라,, 간단하게 만들다보니 특별한 기능은 없는데요.

그럼에도 불구하고, 물품을 검색할 때 마다 로스트아크 홈페이지에서 크롤링을 해야 하다 보니,

약간의 딜레이가 있음은 물론, 함수를 과다하게 사용하는 경우에는 렉또한 발생하더군요...

 

이를 방지하기 위해서, 아래와 같이

아에 필요한 목록을 한방에 가져오는 스크립트도 만들었습니다만.... (이건 다음 포스팅에 올릴게요)

갱신 버튼을 누르면 금액이 자동으로 변경된다... 한번에 불러오므로 크롤링도 한번만 하게되서 속도가 빠른편

 

 

 

 

 

아래는 해당 function에 대한 소스코드입니다. (혹시나 불법프로그램, 뭐 해킹... 말씀 하실까봐 공개합니다...)

 

활용이 가능하신 분은 아래 코드를 수정하셔서 사용하시면 좋을 것 같습니다.

사용이 어려우신 분은, 위에 달아놓은 링크로 들어가셔서 스프레드시트를 사본으로 만들어 활용하면 되겠죠....

(라이브러리로 chreeio 추가가 필요합니다. id: 1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0)

 

 

다음엔 자기가 만든 스프레드시트에 스크립트 수정 하는 방법도 한번 포스팅 하겠습니다..

(쓰다보니 알아야할게 많네요 ㅠㅠ 그래도 화이팅입니다.)

 

 

 

 

function get_market_chip(product) {

    

  var url1 = "https://lostark.game.onstove.com/Market/List_v2?firstCategory=0&secondCategory=0&characterClass=&tier=0&grade=99&itemName=";

  var url2 = "&pageNo=1&isInit=false&sortType=2";



  var url = url1 + product + url2;



  var option = {'method': 'GET', 'muteHttpExceptions': true};

  var response = UrlFetchApp.fetch(url, option);

  var html = response.getContentText('UTF-8');

  var load_data = Cheerio.load(html);



  var product_name = "";

  var price_yesterday = "";

  var price_recent = "";

  var price_chip = "";



  for(i=1;i<10;i++){



    product_name = load_data("#tbodyItemList > tr:nth-child("+i+") > td:nth-child(1) > div > span.name").text();



    if(product_name==product){

      // price_yesterday = load_data("#tbodyItemList > tr:nth-child("+i+") > td:nth-child(2) > div > em").text();

      // price_recent = load_data("#tbodyItemList > tr:nth-child("+i+") > td:nth-child(3) > div > em").text();

      price_chip = load_data("#tbodyItemList > tr:nth-child("+i+") > td:nth-child(4) > div > em").text();

      break;

    }



  }



  return price_chip;

}

 

그럼 즐로아 하시기 바랍니다.

반응형