TFT Support - 4 본문
오늘은 간단하게 저번에 작성했던 코드를 클래스로 다시 정리했다.
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