코드 한 줄

[Solution] 파이썬 웹 크롤링으로 네이버 로그인, 실시간 검색어 추출하기 [2] 본문

Develop -/Python

[Solution] 파이썬 웹 크롤링으로 네이버 로그인, 실시간 검색어 추출하기 [2]

Ahntenna 2018. 5. 28. 15:24

사용자 환경 : macOS Sierra 10.12.6Python 3.6.4PyCharm 2017.3.4 build PC-173.4674.37.






이 글을 읽기 전, 1편 포스팅을 숙지 하셔야 됩니다.





설치는 다 했으니 본격적으로 실행에 옮겨보자.





1. 우선 필요한 파이썬 라이브러리들을 임포트 한다.

from bs4 import BeautifulSoup
from selenium import webdriver




2. driver라는 이름의 변수에 webdriver 객체를 만들어 저장한다.

from bs4 import BeautifulSoup
from selenium import webdriver

# 위치 지정
driver = webdriver.Chrome("(~저장경로)/chromedriver")

저장경로 살피세요




3. Selenium은 기본적으로 웹 자원들이 모두 로드될 때까지 기다려주지만, 암묵적으로 기다리는 시간을 조정할 수 있다.

from bs4 import BeautifulSoup
from selenium import webdriver

# 위치 지정
driver = webdriver.Chrome("(~저장경로)/chromedriver")

# 웹 자원 로드를 위해 암묵적으로 딜레이
delay_time = 3
driver.implicitly_wait(delay_time)




4. 이제 URL을 지정하여 접근하자.

from bs4 import BeautifulSoup
from selenium import webdriver

# 위치 지정
driver = webdriver.Chrome("(~저장경로)/chromedriver")

# 웹 자원 로드를 위해 암묵적으로 딜레이
delay_time = 3
driver.implicitly_wait(delay_time)

# URL 접근
driver.get('https://nid.naver.com/nidlogin.login')




5. 네이버 로그인 화면에서 아이디와 패스워드의 값을 넘기는 폼의 name 값이 각각 id, pw인 것을 확인할 수 있다.





6. webdriver의 find_element_by_name() 함수를 통해 태그를 지정하여 값을 넣어주자.

from bs4 import BeautifulSoup
from selenium import webdriver

# 위치 지정
driver = webdriver.Chrome("(~저장경로)/chromedriver")

# 웹 자원 로드를 위해 암묵적으로 딜레이
delay_time = 3
driver.implicitly_wait(delay_time)

# URL 접근
driver.get('https://nid.naver.com/nidlogin.login')

# ID, PW 입력
id = "본인_네이버_아이디"
pw = "본인_네이버_패스워드"
driver.find_element_by_name('id').send_keys(id)
driver.find_element_by_name('pw').send_keys(pw)




7. 이제 로그인 버튼을 눌러 로그인이 정상적으로 실행되는지 확인한다.

from bs4 import BeautifulSoup
from selenium import webdriver

# 위치 지정
driver = webdriver.Chrome("(~저장경로)/chromedriver")

# 웹 자원 로드를 위해 암묵적으로 딜레이
delay_time = 3
driver.implicitly_wait(delay_time)

# URL 접근
driver.get('https://nid.naver.com/nidlogin.login')

# ID, PW 입력
id = "본인_네이버_아이디"
pw = "본인_네이버_패스워드"
driver.find_element_by_name('id').send_keys(id)
driver.find_element_by_name('pw').send_keys(pw)

# 로그인 버튼 클릭
driver.find_element_by_xpath('//*[@id="frmNIDLogin"]/fieldset/input').click()




8. 로그인 후 실시간 검색어 추출을 위해 네이버 메인으로 이동한다.

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




9. BeautifulSoup 객체를 이용해 페이지를 분석한다.

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

html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')




10. 5번에서와 같이 개발자 도구를 통해 실시간 검색어가 어느 태그에 있는지 확인한다.




11. 마지막으로 추출된 값들을 프린트 한다.

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

html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')

realtime_search_word = soup.select('div.ah_roll_area > ul.ah_l > li > a > span.ah_k')
for list in realtime_search_word:
    print(list.text.strip())






이로써 파이썬과 BeautifulSoup, Selenium, ChromeDriver 등과 같은 라이브러리를 사용하여 네이버에 로그인 후, 실시간 검색어를 추출하는 프로그램을 작성해보았다.












Comments