본문 바로가기

TFT Support - 4 본문

개인 프로젝트 공부

TFT Support - 4

Seongjun_You 2024. 7. 3. 15:09

오늘은 간단하게 저번에 작성했던 코드를 클래스로 다시 정리했다.

 

Scraper를 만들어주었다.

 

 

tasks도 수정을 해주었다.

 

 

#ifndef  SCRAPER_H
#define  SCRAPER_H

#include <sstream>
#include <vector>
#include <string>

class Scraper
{
    private:
        std::vector<std::string> traits;
        std::vector<std::string> avg_places;
        FILE* pipe;
    
    public:
        Scraper();
        ~Scraper();
        std::vector<std::string> GET_traits();
        std::vector<std::string> GET_avg_places();
        void Print_Data();

};


#endif //SCRAPER_H

생성자와 소멸자를 만들었고 출력 및 반환 함수를 만들어주었다.

 

 

#include "Scraper.h"
#include <string>
#include <cstring>
#include <sstream>
#include <iostream>


Scraper::Scraper()
{
    char get_traits[2048];
    char get_avg_places[2048];

    std::cout << "Crawling...." << std::endl;
    std::string pythonscript = "python3 /home/sj/riot_tft_project/Python_script/test.py";
    pipe = popen(pythonscript.c_str(), "r");
    if (!pipe) {
        std::cerr << "popen() failed : " << strerror(errno) << std::endl;
    }

    fgets(get_traits, sizeof(get_traits), pipe);
    std::istringstream ss_1(get_traits);
    
    fgets(get_avg_places, sizeof(get_avg_places), pipe);
    std::istringstream ss_2(get_avg_places);


    std::string buffer;
    while(getline(ss_1, buffer, ',')){
        traits.push_back(buffer);
    }

    while(getline(ss_2, buffer, ',')){
        avg_places.push_back(buffer);
    }


}

Scraper::~Scraper(){
    pclose(pipe);
}

std::vector<std::string> Scraper::GET_traits()
{
    return traits;
}

std::vector<std::string> Scraper::GET_avg_places()
{
    return avg_places;
}

void Scraper::Print_Data()
{
    for(auto data : traits){
        std::cout << data << std::endl;
    }

    for(auto data : avg_places){
        std::cout << data << std::endl;
    }
}

코드는 저번과 동일하고
생성자에서 스크랩핑 데이터를 가져와서 저장을 해준다.

다음은 이 데이터들의 활용을 간단하게 진행하고 프로젝트를 마칠려고한다.

 

'개인 프로젝트 공부' 카테고리의 다른 글

Traceroute - 1  (0) 2024.07.08
TFT Support - 5(완)  (0) 2024.07.05
TFT Support - 3  (0) 2024.07.02
TFT Support - 2  (0) 2024.06.26
TFT Support - 1  (0) 2024.06.21
Comments