- 텔레그램 봇으로 채널 포스팅 - 2. Node.js 사용 예제 (1)

- [Node.js] HTML 파싱하기 (cheerio 모듈 사용)


위의 두 글을 참고하면 웹페이지의 특정 class에 해당하는 부분을 추출하여 텔레그램 채널로 보내는 것이 가능하다. (두둥)

var http = require('http');
var https = require('https');
var cheerio = require('cheerio');
  
var options = {
    hostname: 'httpbin.org'
  };
  
function handleResponse(response) {
  var serverData = '';
  response.on('data', function (chunk) {
    serverData += chunk;
  });
  response.on('end', function () {
  
    var $ = cheerio.load(serverData);
  
    var result = $(".bash").text();            // 클래스가 bash인 요소를 선택
    var result2 = result.replace(/(^\s+|\s+$)/g, ""); // 앞뒤의 화이트 스페이스를 제거
    console.log("Find by class : bash -> " + result2);
 
    var options2 = {
      hostname: 'api.telegram.org',
      path: '/bot<텔레그램 봇 토큰>/sendMessage',
      method: 'POST',
      headers: {
          'Content-Type': 'application/json',
      }
    };
      
    var req = https.request(options2, function(res) {
      console.log('Status: ' + res.statusCode);
      console.log('Headers: ' + JSON.stringify(res.headers));
      res.setEncoding('utf8');
      res.on('data', function (body) {
        console.log('Body: ' + body);
      });
    });
    req.on('error', function(e) {
      console.log('problem with request: ' + e.message);
    });
      
    req.write(
        '{"chat_id": "@<채널 ID>", "text": "' + result2 + '"}'
    );
    req.end();
 
  });
}
  
http.request(options, function(response){
  handleResponse(response);
}).end();





,