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() #크롬드라이버 닫기
'Python' 카테고리의 다른 글
[python] 게시판 형식 오래된 사이트 텍스트 추출 크롤링 (0) | 2022.09.15 |
---|---|
[python] wget 사용 방법 파일 링크 다운로드 해보기 (0) | 2022.09.07 |
[python] 다음 블로그 제목, 본문 내용 텍스트 추출 크롤링 후 메모장 저장 (0) | 2022.09.05 |
[python] 정규식 특수문자 기타 단어 필터링 (0) | 2022.09.05 |
[python] 다음 블로그 URL 추출 및 백업 (0) | 2022.09.05 |
댓글