리눅스맨

티스토리 애드센스 고수익 블로그

티스토리 애드센스 고수익 블로그 찾는 소스코드 – part 1

티스토리 애드센스 고수익 블로그

티스토리 애드센스 고수익 블로그

티스토리 주소를 모두 수집부터 해야하니 1단계는 수집하는 방법에 대해서 기술합니다.

각 프로그래밍 언어별로 네이버 사이트 검색을 통하여 티스토리 도메인을 찾아내는것이 part 1의 기술적인 내용입니다.

티스토리 애드센스 고수익 블로그

티스토리 애드센스 고수익 블로그 찾는 소스코드

URL 파라미터값이 반복적으로 달라질 경우 각 언어별로 제어하는 방법입니다

start 매개변수의 값은 1씩 증가하며, page 매개변수는 start 값을 기반으로 계산

반복되는 파라미터 값의 URL

https://search.naver.com/search.naver?nso=&page=2&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start=1&where=web

https://search.naver.com/search.naver?nso=&page=3&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start=16&where=web

https://search.naver.com/search.naver?nso=&page=4&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start=31&where=web

https://search.naver.com/search.naver?nso=&page=5&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start=46&where=web

아래는 각 언어별 위의 URL을 파씽할 수 있도록 C# 소스코드입니다

C#

using System;

public class Program
{
    public static void Main()
    {
        int startNumber = 1;
        int endNumber = 5;

        string baseUrl = "https://search.naver.com/search.naver?nso=&page={0}&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start={1}&where=web";

        for (int number = startNumber; number <= endNumber; number++)
        {
            string url = string.Format(baseUrl, number, CalculateStartValue(number));
            Console.WriteLine(url);
        }
    }

    public static int CalculateStartValue(int pageNumber)
    {
        return (pageNumber - 1) * 15 + 1;
    }
}

나온 URL을 바탕으로 페이지 파씽하는 소스코드

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text.RegularExpressions;

class Program
{
    static void Main(string[] args)
    {
        string url = "http://example.com"; // 파싱할 웹 페이지 URL
        string pattern = @"(tistory\.com)"; // 추출할 문자열 패턴

        List<string> list_tistory = new List<string>();

        try
        {
            using (WebClient client = new WebClient())
            {
                string html = client.DownloadString(url); // 웹 페이지의 HTML 가져오기

                // 정규식 패턴을 사용하여 "tistory.com" 문자열 추출
                MatchCollection matches = Regex.Matches(html, pattern);
                foreach (Match match in matches)
                {
                    string tistory = match.Value;
                    if (!list_tistory.Contains(tistory))
                    {
                        list_tistory.Add(tistory);
                    }
                }
            }

            // 중복 없이 추출된 "tistory.com" 문자열 출력
            foreach (string tistory in list_tistory)
            {
                Console.WriteLine(tistory);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}

자바스크립트 소스코드

JAVASCRIPT

function generateURLs(startNumber, endNumber) {
  var baseUrl = "https://search.naver.com/search.naver?nso=&page={0}&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start={1}&where=web";
  
  for (var number = startNumber; number <= endNumber; number++) {
    var startValue = calculateStartValue(number);
    var url = baseUrl.replace("{0}", number).replace("{1}", startValue);
    console.log(url);
  }
}

function calculateStartValue(pageNumber) {
  return (pageNumber - 1) * 15 + 1;
}

// 예제 실행
generateURLs(2, 5);


나온 URL을 바탕으로 페이지 파씽하는 소스코드


const url = 'http://example.com'; // 파싱할 웹 페이지 URL
const pattern = /tistory\.com/g; // 추출할 문자열 패턴

const list_tistory = [];

fetch(url)
  .then(response => response.text())
  .then(html => {
    const matches = html.match(pattern);
    if (matches) {
      const uniqueMatches = new Set(matches);
      uniqueMatches.forEach(match => list_tistory.push(match));

      // 중복 없이 추출된 "tistory.com" 문자열 출력
      list_tistory.forEach(tistory => {
        console.log(tistory);
      });
    }
  })
  .catch(error => console.error(error));

php 소스코드

PHP

<?php
function generateURLs($startNumber, $endNumber) {
  $baseUrl = "https://search.naver.com/search.naver?nso=&page={0}&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start={1}&where=web";
  
  for ($number = $startNumber; $number <= $endNumber; $number++) {
    $startValue = calculateStartValue($number);
    $url = str_replace(["{0}", "{1}"], [$number, $startValue], $baseUrl);
    echo $url . "\n";
  }
}

function calculateStartValue($pageNumber) {
  return ($pageNumber - 1) * 15 + 1;
}

// 예제 실행
generateURLs(2, 5);
?>


나온 URL을 바탕으로 페이지 파씽하는 소스코드


<?php
$url = 'http://example.com'; // 파싱할 웹 페이지 URL
$pattern = '/tistory\.com/'; // 추출할 문자열 패턴

$list_tistory = [];

$html = file_get_contents($url);
if ($html !== false) {
    preg_match_all($pattern, $html, $matches);
    if (!empty($matches[0])) {
        $uniqueMatches = array_unique($matches[0]);
        $list_tistory = array_merge($list_tistory, $uniqueMatches);

        // 중복 없이 추출된 "tistory.com" 문자열 출력
        foreach ($list_tistory as $tistory) {
            echo $tistory . "\n";
        }
    }
}
?>

JAVA 언어 소스코드

JAVA

public class URLGenerator {
  public static void main(String[] args) {
    int startNumber = 2;
    int endNumber = 5;
    generateURLs(startNumber, endNumber);
  }
  
  public static void generateURLs(int startNumber, int endNumber) {
    String baseUrl = "https://search.naver.com/search.naver?nso=&page={0}&qdt=-1&query=%EC%A0%95%EB%B6%80%EC%A7%80%EC%9B%90%EC%84%9C%EB%AF%BC%EB%8C%80%EC%B6%9C+tistory.com&qvt=-1&sm=tab_pag&start={1}&where=web";
    
    for (int number = startNumber; number <= endNumber; number++) {
      int startValue = calculateStartValue(number);
      String url = baseUrl.replace("{0}", Integer.toString(number)).replace("{1}", Integer.toString(startValue));
      System.out.println(url);
    }
  }
  
  public static int calculateStartValue(int pageNumber) {
    return (pageNumber - 1) * 15 + 1;
  }
}


나온 URL을 바탕으로 페이지 파씽하는 소스코드


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String url = "http://example.com"; // 파싱할 웹 페이지 URL
        String pattern = "(tistory\\.com)"; // 추출할 문자열 패턴

        List<String> list_tistory = new ArrayList<>();

        try {
            URL urlObj = new URL(url);
            BufferedReader reader = new BufferedReader(new InputStreamReader(urlObj.openStream()));
            StringBuilder stringBuilder = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line);
            }
            reader.close();

            String html = stringBuilder.toString();

            Pattern regex = Pattern.compile(pattern);
            Matcher matcher = regex.matcher(html);

            Set<String> uniqueMatches = new HashSet<>();
            while (matcher.find()) {
                String tistory = matcher.group(1);
                if (!uniqueMatches.contains(tistory)) {
                    list_tistory.add(tistory);
                    uniqueMatches.add(tistory);
                }
            }

            // 중복 없이 추출된 "tistory.com" 문자열 출력
            for (String tistory : list_tistory) {
                System.out.println(tistory);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이렇게 숫자 1부터 100을 입력 할 경우 1페이지부터 100페이지까지 URL을 만들어줍니다.

나온 URL을 바탕으로 각 페이지를 파씽하면 원하는 항목을 추출할 수 있습니다.

다음 시간에는 추출한 리스트를 데이터베이스에 입력하는 시간을 만들어보도록 하겠습니다.

티스토리 블로그 애드센스 고수익내고 계신분들이 자신의 도메인을 꽁꽁 숨겨서 유튜브에서 활동하시는것 같아.

이왕 오픈할꺼면 도메인도 함께 스스로 오픈 하길 바라는 마음으로 알고리즘을 만들어보았습니다.

이를 컨텐츠화 시켜서 유튜브로 영상각을 만들고 싶지만… 그런 목적이 아닌

우리도 고수들 돈 많이 버는 사람들을 따라할수 있도록 하는것이 주 목표입니다.

듣고 보는것보다

직접 그들의 티스토리를 똑같이 작성해보는것이 가장 빠른 길이니깐요.


게시됨

카테고리

작성자

태그: