파이썬(Python)

[ 크롤링-Selenium ] 웹 크롤링 파이썬 네이버 페이지 클릭하기, 검색어 입력하기

카루루1007 2022. 10. 14. 22:42
728x90
반응형
SMALL
◆ 네이버에 접속하기

웹페이지에 있는 정보를 가지고 오기 위해서는

먼저 웹페이지에 접속을 해야 합니다.

selenium을 사용할 것입니다.

먼저 지난번에 포스팅 했던 글을 참고하여 기본 코드를 작성하겠습니다.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

먼저 우리가 자주  사용하는 네이버의 주소를 알아보겠습니다.

위 그림의 빨간색 네모 부분이 네이버의 주소입니다.

위 코드에 아래 코드를 추가해 주면 됩니다.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

url = "https://www.naver.com"
driver.get(url)

 

이제 실행을 해보면 잠깐 네이버 창이 열렸다가 닫히는 것을 보실 수 있습니다.

바로 창이 닫히므로 2초간 기다렸다 닫히도록 해보겠습니다.

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

service=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

url = "https://www.naver.com"
driver.get(url)

time.sleep(2)

time 모듈을 불러와서 2초간 기다리게 하는 코드를 작성하면

웹 페이지가 열린 후 2초간 대기하다 닫히게 됩니다.

반응형
◆ 네이버 로그인 버튼 클릭하기

네이버의 로그인 버튼을 자동으로 클릭해보겠습니다.

먼저 네이버에 접속한 후 [ F12 ]버튼을 클릭하면 오른쪽과 같이

무언가 복잡한 것들이 나타납니다.

위 그림에서 빨간색 네모 부분을 클릭하신 후 네이버 로그인 버튼에

마우스 커서를 가지고가서 클릭해보시기 바랍니다.

빨간색 네모안의 네이버 로그인 버튼을 클릭하면

오른쪽 창의 보라색 부분이 활성화 됩니다.

보라색 네모 부분이 로그인 버튼에 해당하는 부분입니다.

우선 보라색 네모 안의 빨간색 네모를 보면 class 의 이름이 link_login

으로 되어 있는 것을 확인하실 수 있습니다.

이 class 이름으로 selenium은 해당 웹페이지의 이름을 찾을 수도 있습니다.

먼저 link_login이라는 클래스 이름이 해당 페이지에 또 있는 지 확인해 보겠습니다.

[ Ctrl + F ]를 눌러 [ link_login ]을 찾아보니 [ 1개 일치 ]로 나타납니다.

클래스 이름인 [ link_login ]이 현재 웹 페이지에서는 하나만 존재하므로

link_login 클래스 이름을 찾아 클릭하면 제대로 작동을 할 것입니다.

먼저 

from selenium.webdriver.common.by import By

위 처럼 By 모듈을 import 해줍니다.

 

클래스 이름을 찾기 위해서는

find_element(By.CLASS_NAME, "class_name")

을 사용합니다.

driver.find_element(By.CLASS_NAME, "link_login").click()

그리고 찾아서 click 해줍니다.

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

service=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
url = "https://www.naver.com"
driver.get(url)
time.sleep(2)

driver.find_element(By.CLASS_NAME, "link_login").click()
time.sleep(2)

 

◆ 네이버 검색어 입력하기

다음으로는 네이버 검색창에 검색어를 입력해 보겠습니다.

같은 방식으로 네이버 검색창을 찾아보면

아래와 같이 되어 있습니다.

<input id="query" name="query" type="text" title="검색어 입력" maxlength="255" class="input_text" tabindex="1" accesskey="s" style="ime-mode:active;" autocomplete="off" placeholder="검색어를 입력해 주세요." onclick="document.getElementById('fbm').value=1;" value="" data-atcmp-element="">

 

검색창을 선택하려면

class_name을 사용하거나 id를 사용할 수도 있습니다.

그외에 다른 방법들이 있지만 위 두방법을 먼저 사용해 보겠습니다.

먼저 class_name을 사용하는 방법입니다.

위에서 언급했던 방식과 같습니다.

driver.find_element(By.CLASS_NAME, "input_text").send_keys("파이썬")

 

id를 사용하는 방법은 다음과 같습니다.

driver.find_element(By.ID, "query").send_keys("selenium")

 

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
import time

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
url = "https://www.naver.com"
driver.get(url)

driver.find_element(By.CLASS_NAME, "input_text").send_keys("파이썬")
time.sleep(2)
driver.find_element(By.ID, "query").send_keys("selenium")
time.sleep(2)

전체 소스코드입니다.

 

참고로 검색어를 지우고 싶다면 clear() 함수를 사용하시면 됩니다.

driver.find_element(By.ID, "query").clear()
728x90
반응형
LIST