[잡설] 엑셀을 이용한 웹 자동화: SEO 이야기

작성자
dra****
작성일
2021-11-04 12:06
조회
171

지인이 구글 서치 관련 웹 자동화를 부탁하셨는데, 좀 망설여 졌습니다.
그런데, 사업자 입장에서는 자신의 싸이트나 제품이 탑 순위에 올라가는 것이 매출과 관련이 있기에,
어찌 보면 당연하다 생각도 했습니다. 웹 소비자 입장에서는 매우 짜증 나는 일이기도 한 것입니다.
불법에 사용하지 않는 다는 각서를 받고, 개발하기로 했습니다.

사실, 제가 해보지 않은 새로운 분야였기에, 다시 공부를 해야겠다는 투지가 불살라지는...

1. SEO(Search Engine Optimization)의 배경과 이론을 좀 알아야 했기에 공부를 좀 했습니다.
덕분에 어떻게 순위가 올라가는지, 매년 네이버와 구글이 스패머들에 대항하여 어떻게 로직을 바꾸었는지 등등
서양의 유튜버는 일명 white-hat 방식의 정법을 가르치고, 한국의 유튜버는 black-hat 이라는 방법으로, 자신에게 돈을 지불하면 어떻게 하는지 가르쳐 준다는 식이네요. ㅋ

2. Selenium vs SHDocVw.WebBrowser
Selenium이 강력한 메서드들을 더 많이 제공하지만, 2016년 이후 업데이트를 하지 않아,
크롬이나 파이어폭스 같은 브라우저들의 버전을 맞추어 새로 설치해야 하는 번거로움이 있어,
기본 마소에서 제공하는 InternetExplorer = WebBrowser를 이용해서 개발하기로 했습니다.

3. 수백 또는 수천 개의 싸이트 게시판 및 블로그에 홍보글(불법 아닙니다)을 어떻게 해야 자동화 할 수 있는가에 대한 심각한 고민
사이트 마다, 로그인 방식, 인증 방식이 다르고, 게시판 들어가는 방법, 블로그 메뉴 글쓰기 방법, capcha라는 자등 등록 방지는 어떻게 우회해야 할 것인가 등등... capcha가 가장 어려운 부분입니다. 이 부분은 절반의 성공만 이루었고, 계속 연구 중입니다.
로직 완성에만 1주일 정도 소요 되었습니다.

4. 그간 대충 알고 넘어갔던, HTML Document 문서 구조를 꿰차게 됩니다. 각각의 속성부터, child node까지,
CSS Selector의 달인이 된 느낌... 크롬 개발자 도구에서 복붙해도 되는데... 야가 제대로 못잡아 줄 때가 있음. 특히 iframe 태그 안에 html문서가 들어가 있을 때...

5. 마소의 HTMLDocument, HTMLElement 등등의 객체들에 있는 메서드가 자바스크립트 메서드 방식을 그대로 따라 간다는 것,

6. 덕분에, WebBrowser Object, HTMLElement 등등의 reference를 또 새로 만들었네요...

7. 엑셀의 VBA는 업데이트는 없어도 매우 강력하다는 것을 새삼 또 깨달음

프로젝트가 완료 되어, 후기를 적어 봅니다.
정말 악용의 소지가 많이 있어서 코드는 공개하지 않겠습니다.
다만 잘 활용하면 회사의 웹이나 자신의 웹과 엑셀을 연동하여 업무를 더 효율적으로 할 수 있지 않을까 생각해 봅니다.
저는 테스트 해 볼 회사가 없어서 여기까지만... ㅎㅎㅎ

전체 10

  • 2021-11-12 12:16

    코딩이란건 넘어렵네요

     


  • 2021-11-16 04:35

    재야의 숨은고수 dra 님...ㅎㅎ SEO는 포스트를 자동으로 써주는 매크로인가요?


    • 2021-11-16 08:17

      @더블유에이 님 재야의 고수란 말은 지나친 과찬입니다.... ㅎㅎㅎ

      자동으로 되는 사이트가 있고, 클릭 감지를 하는 사이트나 Shadow DOM을 사용하는 사이트는 반자동입니다.

      사용자 정의폼에서 버튼 클릭으로 처리 할 수 있게 만들었습니다.

      새로운 프르그램을 할 때마다, 새로운 배움에 그저 즐거울 따름입니다... ^^


  • 2021-11-11 02:59

    SEO 중요하쥬~ㅎㅎ 문제는 구글에서는 통하는데 국내 네이버, 다음에서는 안먹힌다는게.. 크흠... 백링크 작업도 중요하지만

    네이버는 키워드마다 쇼핑우선, 블로그우선으로 타겟이 자동으로 잡히다보니 키워드 고르는 것도 쉽지 않더라구요 ㅎㅎ

    캡차는 VBA로 가능할깜유?.. @@ 파이썬은 캡챠솔버로 풀면 될텐딩.. VBA가 된다면 혁명이겠네요


    • 2021-11-11 10:17

      @엑셀은즐거워 님 저는 코딩하며 소소한 즐거움을 찾는 것이 목적이고, 나머지 부분은 지인이 감당해야 할 부분이니 ㅎㅎ.

      별 신경도 안썼던 capcha 부분을 우회하려 하니 공부를 하게 되는 군요.

      JS코드를 분석해 보니 어떻게 해야 하는지는 알겠는데, VBA로 온갖 실험을 해보는데, 안 먹히네요. 점점 Header, Response 쪽 객체들만 자동 암기되어 가고 있는 부작용이 생기고 있습니다.

      대부분의 국내 게시판이 거의 단일화 되다 시피 되어 있다는 사실을 이번에 처음 알았습니다. 20년전에 하던 방식으로.... 반응형은 전혀 신경도 쓰지 않는...


      • 2021-11-14 06:36

        @dra**** 님 예전에 호텔 예약 시스템 만들때 동일한 문제로 고생했었는데 SEO 관리면 네이버나 다음쪽 블로깅을 하시는걸까요? 아마 시도해보셨겠지만.. 예전에 저는 접근주기를 늦춰서 해결했었습니다 ㅎㅎ 요청이 몰렸을 때 한번에 시도했을 때 봇으로 인식하는 오류가 있었었고, 또 중요한 점이 click 이벤트를 처리했던걸로 기억하는데, 이벤트 처리를 모듈안에서 처리해뻐리면 봇으로 인식하는 경우가 많더라구요. 그래서 오토핫키로 클릭하거나 윈도우 창을 인식해서 물리적으로 클릭하도록 처리해서 해결했던 경우도 있었습니다


        • 2021-11-14 10:05

          @엑셀은즐거워 님 테스트 하다 보니, 모듈 안에서의 클릭이 거부되는 싸이트가 꽤 있더군요. 물리적 클릭이라 함은 사람이 직접 클릭 한다는 의미겠지요?

          혹시 웹페이지가 모듈 안의 클릭이 자동 클릭인지 물리적 클릭인지 어떻게 인식하는지 알고 계시면 지식 공유 좀 부탁 할 수 있을까요?


          • 2021-11-18 18:37

            @dra**** 님 버튼 클릭 전 입력상자에 값을 입력해야 했는데, 입력상자의 Value를 코드로 입력하면 탭이 잡히지 않고 입력됩니다 ㅎㅎ

            그 당시 페이지 로직이 탭 잡히지 않고 클릭되면 캡챠를 띄우더라구요. 아마 버튼도 동일할 걸로 예상됩니다


            • 2021-11-18 18:39

              @엑셀은즐거워 님 그럼 포커스를 주고 하면 괜찮을 수도 있겠네요... 테스트 해봐야 겠네요.... 감사...^^

               


  • 2021-11-27 01:50

    공유 감사합니다


전체 49
번호 제목 작성자 작성일 추천 조회
24189
New [엑셀 VBA] Snippet - OCR: 이미지 파일을 텍스트 파일로 변환하기 (2)
dra**** | 2021.12.01 | 추천 1 | 조회 29
dra**** 2021.12.01 1 29
23999
[엑셀 VBA] Snippet - Public IP, Local IP, Mac Address 구하기 (4)
dra**** | 2021.11.25 | 추천 1 | 조회 41
dra**** 2021.11.25 1 41
23794
[엑셀 VBA] Snippet - 변수를 clipboard로 복사하기 (5)
dra**** | 2021.11.21 | 추천 2 | 조회 61
dra**** 2021.11.21 2 61
23337
HTML 라이브러리 사용하기 귀찮을 때, 사용하는 파싱함수 (getElementsByTag, getAttribute) (6)
트로피 오빠두엑셀 | 2021.11.09 | 추천 0 | 조회 84
트로피 오빠두엑셀 2021.11.09 0 84
23142
[잡설] 엑셀을 이용한 웹 자동화: SEO 이야기 (10)
dra**** | 2021.11.04 | 추천 0 | 조회 171
dra**** 2021.11.04 0 171
22802
[잡설] 웹 서버에서 내보내는 엑셀 파일 및 데이터 이야기 (6)
dra**** | 2021.10.25 | 추천 0 | 조회 114
dra**** 2021.10.25 0 114
22325
[엑셀 VBA] 파워쿼리 자동화 4. CRUD (3)
dra**** | 2021.10.12 | 추천 1 | 조회 157
dra**** 2021.10.12 1 157
22161
[엑셀 VBA] 파워쿼리 자동화 3. MySQL Class (8)
dra**** | 2021.10.07 | 추천 0 | 조회 176
dra**** 2021.10.07 0 176
21839
[엑셀 VBA] 파워쿼리 자동화 2. 자동화 실습 (8)
dra**** | 2021.09.28 | 추천 0 | 조회 234
dra**** 2021.09.28 0 234
21764
[엑셀 VBA] 개체 Reference - QueryTable Object 첨부파일 (2)
dra**** | 2021.09.26 | 추천 0 | 조회 96
dra**** 2021.09.26 0 96
21675
[엑셀 VBA] 파워쿼리 자동화 1. 자동화 순서 (8)
dra**** | 2021.09.23 | 추천 0 | 조회 412
dra**** 2021.09.23 0 412
21496
[엑셀 VBA] 개체 Reference - ADODB.Recordset : Database 필수 첨부파일 (4)
dra**** | 2021.09.16 | 추천 1 | 조회 195
dra**** 2021.09.16 1 195
21491
[잡설] IT가 흘러가고 있는 방향에 대한 단상 - 무엇을 공부해야 하는가? (21)
dra**** | 2021.09.16 | 추천 4 | 조회 224
dra**** 2021.09.16 4 224
21482
[엑셀 VBA] MySQL 02. Range -> 배열 -> INSERT (5)
dra**** | 2021.09.16 | 추천 0 | 조회 216
dra**** 2021.09.16 0 216
21412
[엑셀 VBA] MySQL 01. 워크시트 Custom Properties 활용하기 (4)
dra**** | 2021.09.14 | 추천 1 | 조회 114
dra**** 2021.09.14 1 114
20740
[엑셀 VBA] 개체 Reference - ListObject Object - [표]가지고 놀기 첨부파일 (12)
dra**** | 2021.08.29 | 추천 4 | 조회 229
dra**** 2021.08.29 4 229
20211
[엑셀 VBA] Windows API - winuser.h : 윈도우즈 프로그램의 핵심 첨부파일 (8)
dra**** | 2021.08.17 | 추천 3 | 조회 212
dra**** 2021.08.17 3 212
20194
[잡설] 엑셀이 웹으로 가야 하는 이유 (23)
dra**** | 2021.08.16 | 추천 12 | 조회 491
dra**** 2021.08.16 12 491
20153
[엑셀 VBA] 개체 Reference - FileSystem Object 첨부파일 (3)
dra**** | 2021.08.15 | 추천 1 | 조회 143
dra**** 2021.08.15 1 143
19717
[엑셀 VBA] 데이터 자동화 - 웹에서 제공하는 MySQL Sever를 이용한 자동화 개념 (15)
dra**** | 2021.08.05 | 추천 2 | 조회 345
dra**** 2021.08.05 2 345