[셀레니움]htm 문서 이름까지는 알아 냈습니다. 이제 그것들을 하나씩 클릭하려면 어떻게 해야 하나요?

조회수 769회

목표: -각 html 문서로 들어간 뒤 -전체 문서 복사 = 키보드 CTRL + A -해당 내용 엑셀로 저장

진행상황 현재 아래 까지 진행했습니다. 프레임을 전환하고 html을 파싱하고 href의 htm 문서들의 이름을 알아냈습니다.

그런데 여기서 해당 htm 문서를 들어가는 것을 어떻게 하는 지 모르겠습니다. 거의 튜토리얼 따라할 수 있는 수준이다 보니 웹 구조를 잘 이해못하고 튜토리얼 함수에서 조금만 벗어나면 할 줄을 모릅니다.

지금 각 문서를 접근하는 방법도 모르겠고 그 문서로 들어간 뒤 내용을 CTRL + A 누른 것처럼 복사하는 방법도 모르겠습니다. 엑셀로 저장하는 것은 튜토리얼을 찾아보다보면 있을 것 같은데요. 위 두가지는 어떻게 해야할 지 모르겠습니다. 더 공부 안하고 질문해서 죄송합니다. 부탁드립니다. 감사합니다.

from selenium import webdriver
path= "C:/Users\KIM/Downloads/chromedriver.exe"
driver = webdriver.Chrome(path)
driver.get('https://komyojikyozo.web.fc2.com/')

#print를 찍어서 자신이 찾고자 하는 iframe 어디 있는지 확인합니다.

iframes = driver.find_elements_by_tag_name('frame')
for i in iframes:
    print(i)

# 해당 프레임으로 전환
driver.switch_to.frame(iframes[0])    
#iframes[0]의 현주소를 받아옵니다.
html = driver.page_source
# html을 파싱합니다.
from bs4 import BeautifulSoup
from urllib.request import urlopen
soup = BeautifulSoup(html, 'html.parser')

# 링크 즉 a 태그들을 가져와서, 이 중에 a 태그를 반복문을 돌면서 href 부분을 출력.
for anchor in soup.find_all('a'):
    print(anchor.get('href', '/'))

결과값

top.html
javascript:void(0)
javascript:void(0)
dnskv/dn01/dn01c01.htm
dnskv/dn01/dn01c02.htm
dnskv/dn01/dn01c03.htm
dnskv/dn01/dn01c04.htm
dnskv/dn01/dn01c05.htm
dnskv/dn01/dn01c05.files/sheet001.htm#dn01c05p02
dnskv/dn01/dn01c06.htm
dnskv/dn01/dn01c07.htm
dnskv/dn01/dn01c08.htm
dnskv/dn01/dn01c09.htm
dnskv/dn01/dn01c10.htm
dnskv/dn01/dn01c10.files/sheet001.htm#dn01c10p02
dnskv/dn01/dn01c10.files/sheet001.htm#dn01c10p03
dnskv/dn01/dn01c10.files/sheet001.htm#dn01c10p04
dnskv/dn01/dn01c11.htm
dnskv/dn01/dn01c12.htm
dnskv/dn01/dn01c13.htm
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 클릭을 하는 순간 다른 페이지로 넘어가기 때문에 다른 요소들을 클릭할 수는 없습니다. 초보자 2021.9.25 10:40
  • 답변 감사합니다. 알 수 없는 사용자 2021.9.25 15:14

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)