주식 크롤링 도움이 필요합니다. (추가 질문 있습니다.)
919
작성한 질문수 2
안녕하세요.
어느새 무제한 강의로 바뀌었네요. ^^
네이버금융크롤링을 응용하여 재무제표를 가져 오고 싶은데...
https://finance.naver.com/item/main.naver?code=005930 페이지의 재무제표는 잘 가져왔습니다.
그런데 재무재표 더보기 버튼을 클릭한 페이지에서 재무제표의 테이블 값을 가져오려니 못가져 오고 있습니다.
https://finance.naver.com/item/coinfo.naver?code=005930&target=finsum_more 페이지 입니다.
찾고 싶은 테이블 : <table class="gHead01 all-width" summary = "주요재무정보를 제공합니다.">
왜 못가져오나 테스트 해보니

html print 해보면 찾고 싶은 table 내용이 아예 없어요.
해당 table의 부모인 div = id는 페이지 열 때 마다 값이 변합니다.
동적페이지 이런 걸까요??? Selenium을 사용해야 하는건지...
별 삽질을 다 해 보고 있는데 제 능력으로는 해결이 안되 도움이 필요합니다. ㅠㅠ
답변 1
1
안녕하세요.
코딩을 가장 쉽게 알려주는 크리에이터, 스타트코딩입니다.
찾고 싶은 테이블 : <table class="gHead01 all-width" summary = "주요재무정보를 제공합니다.">
부모태그를 찾아서 올라가보면 iframe 태그 안에 있습니다.
iframe태그는 페이지안에 또다른 페이지를 삽입할 때 쓰는 태그입니다.

src 속성값인 url로 요청을 보내면 잘 받아와 질 겁니다 :)
0
몇일 바빠서 이제야 봤는데 답변 감사합니다~
그런데 답변해 주신 링크는 이미 테스트 해봤던건데 결과는 똑같았습니다.
새로운 질문으로는
form에 Post인 부분이 있는데 연관이 있을까요??
2. 검색 버튼 클릭 시 Javascript를 실행 함으로써 동적 페이지로 동작 하는 것 같습니다.
검색 버튼 클릭 할때 Parameters에 encrypt 관련이 있어 값을 넣을 수 도 없었습니다....

3. 어떻게든 아름다운스푸 단에서 끝내고 싶었는데.... 정녕 Selenium을 이용 해야 할까요...??
1
많이 까다롭네요.
파라미터를 암호화해서 매번 호출할 때마다 생성하는 페이지 인 것 같습니다.
페이지에 공개된 자바스크립트 코드 쪽을 분석해 보니
encparam값이 노출되어 있습니다.
아래 코드로 가져올 수 있으니 확인해 보세요.
import requests
from bs4 import BeautifulSoup
response = requests.get("https://navercomp.wisereport.co.kr/v2/company/c1010001.aspx?cmp_cd=005930&target=finsum_more")
html = response.text
start = html.find('encparam')
html[start + 11: start + 43]
셀레니움 환경설정 오류
0
50
2
네이버 로그인 관련
0
263
2
안녕하세요 셀레니움에 대해서 질문
0
86
1
크롤링 연습사이트 문의
0
97
2
선택자 질문
0
71
2
'특정 요소가 나타날 때까지 스크롤' 부분 에러
0
78
2
자동 로그인 질문
0
89
2
44강 제목, 링크
0
105
1
원하는 값이 없을 때
0
90
2
크롤링한 링크가 엑셀로 들어가면 작동이 안되요
0
227
2
셀레니움 PDF자료는 받을 수 있나요
0
100
2
글목록 추출하기
0
98
2
메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문
0
88
2
강의 노트가 어디에 있는건가요?
0
80
2
강의 커리큘럼 질문
0
98
1
조건문 else 사용하지 않는 이유
0
76
2
셀레니움으로 접근할 수 없는 경우
0
95
2
웹페이지 변경
0
72
2
자바스크립트로 태그 선택 시 질문입니다.
1
64
2
수료증은 어떻게 받나요?
0
120
2
class명을 활용하여 선택자를 만들지 않는 경우..?
0
61
2
드라이버가 안 열려요
0
79
2
이거 해결방법 아시는 분?
0
121
2
네이버 지식인 크롤링..
0
202
2





