본문 바로가기
Python

[python] 네이버 웹마스터도구 색인 URL 웹페이지 요청 자동화 해보기

by 퍼포먼스마케팅코더 2022. 9. 5.
반응형

python 네이버 웹마스터도구 색인 URL 웹페이지 요청 자동화 해보기

여러분들 중에 네이버 웹마스터 도구를 이용하시는 그런 분들이 계실 겁니다. 저도 이번에 티스토리를 활용을 해보면서 네이버 웹마스터 도구를 어떻게 활용을 해볼 것인가 그런 것에 대해서 알아봤어요. 보아하니까 너무 수동으로 돼 있더만요 수동으로 돼 있다. 보니까 처리하기가 번거롭고 껄끄러운 뭔가 그런 것들이 있었습니다. 가지고 온 게 바로 네이버 웹마스터 도구에 승인 요청하는 거 있지 않습니까 이거를 자동으로 돌리는 거를 제가 가지고 왔어요.

 

이렇게 자동으로 가지고 오는 거는 왜 그러냐면 블로포스팅을 많이 하신 분들이 있지 않습니까? 하루에 1~2개 정도 포스팅 하면 상관없는데 예를 들어 30개 이상 정도 포스팅을 했다. 그런 경우에는 복잡해집니다. 여러분도 보셔서 아시겠지만 힘들어요. 이거 하나하나씩 이걸 계속 수동으로 요청을 해야 되기 때문에 api key도 없고 그래서 그 셀레니움 형식으로 해놔서 이걸 자동으로 만들어놨습니다. 코딩을 살펴보시고요 뭔가 자동화로 뭔가 할 수 있는 그런 것만 찾으셔서 여러분들이 집어넣으시기만 하면 될 것 같아요.

 

별다르게 어려운 상황이라거나 이런 거는 없으니까 참고만 참고만 해서 혹시나 여러분들이 오랫동안 운영하셨던 티스토리 뭔가 블로그가 있는데 네이버에 세균이 현재 지금 많이 안 돼 있다 하시면은 이걸 참고하셔서 집어넣으시면 될 것 같습니다. 마지막으로 말씀드리자면 이거는 하루에 50개만 됩니다. 하루에 50개만 색인 요청을 할 수 있고 그것에 따라서 색인이 바로바로 수집은 될 거예요. 수집이 안 돼 있으면 진짜 어 웬만한 건 다 수집을 해주기 때문에 안 되어 있는 거는 콘텐츠적인 것들은 많이 고려를 해보셔야 됩니다.

 

from __future__ import print_function
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import os
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
from googleapiclient.http import MediaFileUpload, MediaIoBaseDownload
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
import  warnings
from    selenium import webdriver
from    selenium.webdriver.support.ui import WebDriverWait
from    selenium.webdriver.support import expected_conditions as EC
from    selenium.webdriver.common.by import By
from    selenium.webdriver.common.keys import Keys 
from    selenium.webdriver.common.action_chains import ActionChains
from    selenium.common.exceptions import NoSuchElementException,StaleElementReferenceException
from    bs4      import BeautifulSoup
import  time
import  pyperclip
import  requests
import  datetime
import  pymssql
import  pandas as pd
from  pandas.core.frame import DataFrame
import  matplotlib.pyplot as plt
import  chromedriver_autoinstaller
import  subprocess

from    selenium import webdriver
from    selenium.webdriver.chrome.options import Options
from    selenium.webdriver.common.alert import Alert
from    selenium.webdriver.chrome.service import Service

import  chromedriver_autoinstaller
import  subprocess
import  shutil 
import  xlrd
import  openpyxl 
import  pygsheets
import  csv
import  re
import  webbrowser
import  os
import  sys
import  urllib.request
import  json
from    pandas.io.json import json_normalize
import  hashlib
import  hmac
import  base64
import  numpy as np
import  autoit #autoit는 반드시 autoit 프로그램이 깔려있어야됨
import  pyautogui
from PIL import ImageGrab
try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract
import cv2
import numpy as np
import glob
from googleapiclient.http import MediaFileUpload, MediaIoBaseDownload
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
import io

from time import gmtime, strftime

import youtube_dl
from youtube_transcript_api import YouTubeTranscriptApi

import pdfkit
from PyPDF2 import PdfFileReader, PdfFileWriter
from tika import parser
import pdfkit

import pytumblr #텀블러
from requests_oauthlib import OAuth1Session

import tweepy #트위터용 
import pytumblr #텀블러
from requests_oauthlib import OAuth1Session
import config

from instagrapi import Client
from instagrapi.types import StoryMention, StoryMedia, StoryLink, StoryHashtag
import urllib.request

#네이버 메일 포워딩 import 리스트  
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.application import MIMEApplication

warnings.filterwarnings('ignore')

now = datetime.datetime.now() #오늘날짜
nowDate = now.strftime('%Y.%m.%d') #오늘날짜변환

currency = pd.read_excel('C:/Users/user/raw/currency.xlsx') #환율열기

try:
    shutil.rmtree(r"c:\chrometemp")  #쿠키 / 캐쉬파일 삭제
except FileNotFoundError:
    pass
subprocess.Popen(r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrometemp"') # 디버거 크롬 구동
option = Options()
option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
try:
    s = Service(f'./{chrome_ver}/chromedriver.exe')
    driver = webdriver.Chrome(service=s, options=option)
    #driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
except:
    chromedriver_autoinstaller.install(True)
    s = Service(f'./{chrome_ver}/chromedriver.exe')
    driver = webdriver.Chrome(service=s, options=option)
    #driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
    #driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
driver.maximize_window() #최대창
time.sleep(3)    
driver.implicitly_wait(10)

action = ActionChains(driver) #액션지정

#네이버 이동

url = 'https://www.naver.com'
driver.get(url)
time.sleep(5)
driver.implicitly_wait(10)

driver.find_element_by_class_name('link_login').click()
time.sleep(1)
driver.implicitly_wait(10)

#id, pw 입력할 곳 찾기

tag_id = driver.find_element_by_name('id')
tag_pw = driver.find_element_by_name('pw')
driver.implicitly_wait(10)

#id 입력

tag_id.click()
pyperclip.copy('') #아이디 입력
tag_id.send_keys(Keys.CONTROL, 'v')
time.sleep(2)
driver.implicitly_wait(10)

#pw 입력

tag_pw.click()
pyperclip.copy('') #비밀번호 입력
tag_pw.send_keys(Keys.CONTROL, 'v')
time.sleep(2)
driver.implicitly_wait(10)

#로그인 버튼 클릭

login_btn = driver.find_element_by_id('log.login')
login_btn.click()
time.sleep(1)
driver.implicitly_wait(10)


## 네이버 웹마스터도구 & 메모장 읽기

f = open('C:/Users/user/raw/submit_urls/submit_urls_text_for_naver.txt', 'r',  encoding='utf8')  #메모장 기준
url_lists = f.readlines()


############## 네이버 웹마스터도구로 이동

######## naver url에 웹페이지 색인 요청 URL 페이지를 넣어야함

naver_url = 'https://searchadvisor.naver.com/console/site/request/crawl?site=https%3A%2F%2Fyour.tistory.com'  #url 수정

driver.get(naver_url)
time.sleep(3)
driver.implicitly_wait(10)
action = ActionChains(driver) #액션지정


###### 수집 요청 URL 클릭 반복 & 웹페이지 수집 요청

#input = driver.find_element_by_xpath('//*[@id="input-212"]') #웹페이지 수정 요청 URL 클릭

#try :
#    url_input = driver.find_element_by_xpath('//*[@id="input-208"]') #웹페이지 URL 요청 
#except :
#    url_input = driver.find_element_by_xpath('//*[@id="input-212"]') #웹페이지 URL 요청 

#url_input_2 = driver.find_element_by_xpath('//*[@id="input-212"]') #웹페이지 URL 요청 (다른거)

#url_input_button = driver.find_element_by_xpath('//*[@id="app"]/div/main/div/div[2]/div[2]/div/div[2]/div[2]/div[1]/div[2]/div[2]/div[1]/div[2]/div/div/div[3]/button') #웹페이지 URL 요청 


for url in url_lists :  #시범 테스트
    try :
        url_input = driver.find_element_by_xpath('//*[@id="input-208"]') #웹페이지 URL 요청 
    except :
        url_input = driver.find_element_by_xpath('//*[@id="input-212"]') #웹페이지 URL 요청 
    
    #웹페이지 버튼 클릭
    url_input_button = driver.find_element_by_xpath('//*[@id="app"]/div/main/div/div[2]/div[2]/div/div[2]/div[2]/div[1]/div[2]/div[2]/div[1]/div[2]/div/div/div[3]/button') #웹페이지 URL 요청 
    
    
    url_input.click()   #수집 요청 URL 클릭    
    time.sleep(1)
    driver.implicitly_wait(10)
    
    pyperclip.copy(url) #복사 
    
    url_input.send_keys(Keys.CONTROL, 'v') #붙여넣기  
    time.sleep(1)  #1초간 기달리기
    driver.implicitly_wait(10)
    
    url_input_button.click()  #버튼 클릭
    time.sleep(7)  #5초간 기달리기
    driver.implicitly_wait(10)    
    
    naver_url = 'https://searchadvisor.naver.com/console/site/request/crawl?site=https%3A%2F%2Fyour.tistory.com'  #url 수정
    driver.get(naver_url)
    time.sleep(5)
    driver.implicitly_wait(10)
    action = ActionChains(driver) #액션지정

f.close() #파일 닫기

driver.close()  #크롬드라이버 닫기
driver.quit() #크롬드라이버 닫기

 

반응형

댓글