인프런 - 강의/초간단 초스피드 데이터 수집 (파이썬 크롤링)

9 - selenium 활용 (click)

개복치 개발자 2019. 12. 22. 04:12

일단 셀레니움 기본 코드를 써놨습니다.

 

implicitly_wait 이 부분은 3초 쉰다고 말씀드렸는데, 페이지가 로드 되는 것 기다린다 라고 생각하시면 됩니다. 크게 신경쓸 부분은 아닙니다.

 

자, 그렇다면 이제 계속 해보는데, 오늘의 유머 사이트를 크롤링 해 봅니다.

 

여기까지 해서, html 태그를 다 뽑아올 수 있고

 

여기까지 해서 제목들 뽑아 올 수 있습니다.

 

여기에서 클릭을 통해서, 다양한 태그들을 한번 뽑아와보겠습니다.

 

아래와 같이 id를 찾아서 클릭해서, 사용할 수 있습니다.

 

코드

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Chrome('./chromedriver')
# 3초 쉬고
driver.implicitly_wait(3)
# url에 접근
driver.get('http://www.todayhumor.co.kr/')
# HTML형태로 받아와서 soup에 넣어놓음
# 오늘의 유머 사이트로 접속해서 나오는 제목들을 다 크롤링 한 다음
soup = BeautifulSoup(driver.page_source, 'html.parser')

for i in soup.find_all("td", class_="subject") :
    print(i.text)

# 그 다음 베스트오브베스트 라는 버튼을 눌러서, 나오는 게시글들의 제목을 크롤링
driver.find_element_by_id("span_topmenu_bestofbest").click()

print("구분선 --- ------")

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

for i in soup.find_all("td", class_="subject") :
    print(i.text)

# 자유게시판 제목 크롤링
print("구분선2 --- ------")
driver.find_element_by_id("span_topmenu_freeboard").click()

for i in soup.find_all("td", class_="subject") :
    print(i.text)

print("구분선3 --- ------")







# driver.close()

 

끝 :)