[질문] 웹 크롤링으로 데이터 수집 시 데이터 병합이 안되는 문제
458
작성한 질문수 7
안녕하세요.
선생님 강의 잘 듣고 있습니다.
강의를 들으면서 책을 보고 웹 크롤링으로 데이터를 다운 받아 dataframe으로 전환
최종 엑셀로 저장하는 코드를 공부 하고 있습니다.
그런데 크롤링은 되는데 최종 엑셀 저장 파일을 보면 맨 처음 페이지만 저장 되는데요
아래 코드에서 잘못된게 있을까요?
그리고 break문을 적으면 SyntaxError: 'break' outside loop
에러가 나와 주석처리 했습니다.
제가 워낙 초보라 답변을 주실 수 있는지요?
감사합니다.
# from selenium import webdriver # browser = webdriver.Chrome("/Users/maru/Downloads/chromedriver") # browser.get("https://seibro.or.kr/websquare/control.jsp?w2xPath=/IPORTAL/user/company/BIP_CNTS01042V.xml&menuNo=286#") search_btn = browser.find_element_by_id("image1") search_btn.click() html = browser.page_source from bs4 import BeautifulSoup from html_table_parser import parser_functions as parser import pandas as pd soup = BeautifulSoup(html, "html.parser") table = soup.find("table", attrs ={"id" : "grid1_body_table"}) p = parser.make2d(table) df = pd.DataFrame(p[2:], columns=p[1]) df.head() import time import random from tqdm import tqdm prev_no = 0 prev_table = None for i in tqdm(range(0,200)): try: next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() except: time.sleep(2) try: next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() except: time.sleep(2) next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() def get_html(browser, cnt): if cnt >= 4: return -1, -1 html = browser.page_source soup = BeautifulSoup(html, "html.parser") cur_no = soup.find("a", sttrs = {"class" : "w2pageList_control_label w2pageList_label_selected"}) cur_no = cur_no.text table = soup.find("table", attrs={"id" : "grid1_body_table"}) if cur_no != prev_no and prev_table != table: return cur_no, table else: time.sleep(1) get_html(browser, cnt+1) cur_no, table = get_html(browser, 1) if cur_no == -1: print("\n종료. 테이블 정보가 바꾸지 않았습니다.") break p = parser.make2d(table) temp = pd.DataFrame(p[2:], columns=p[1]) df = pd.concat([df, temp], 0) prev_no = cur_no prev_table = html if cur_no == "95": print("\n 최종 페이지 도달") # break time.sleep(random.randrange(3, 5)) df.to_excel("stock_div.xlsx")
답변 1
cufflinks 버전문제로 iplot() 미실행
0
58
2
[수정요청]직접 수집한 주가 데이터로 시각화해보기
0
70
2
pd.read_html(url, encoding='cp949') 에러
0
95
2
fdr.StockListing('KRX') 문제 발생
0
181
2
주식 자동매매 프로그램 제작 관련 조언 부탁드립니다
0
457
1
concat 을 통한 데이터 프레임 합치기 에러 문의
0
118
2
한글폰트 관련해서 문의드립니다.
0
247
2
데이터프레임 칼럼명 문의 드립니다.
0
250
3
금융데이터 수집의 모든것
0
155
2
녹화시점과 현재시점 컬럼명이 변경이 많이 되었을까요?
0
202
2
파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기 - 섹션1 [2/2]
0
182
1
Mac 환경에서 nbextensions 활성화 하는 방법
0
606
2
pd.concat(result.tolist()) 오류 문의
0
257
1
5.1 제약 데이터 수집 오류 해결
0
242
1
Table of contents 문의드립니다
0
222
2
concat을 통한 데이터프레임 합치기
0
560
2
Reindexing only valid with uniquely valued Index objects 오류 질문입니다.
0
499
1
데이터 비교시 데이터 불일치
0
420
1
dtype={"itemcode": np.object}) 을 dtype={"itemcode": object}) 으로 변경해야 하나요?
0
608
1
질문 : for문 풀어쓰기
0
501
1
파이참에서 Plotly 그래프 실행방법
0
1322
1
5.1 데이터프레임 병합(merge)
0
753
2
쥬피터노트북에서 실행파일 만들기
0
1460
1
주피터노트북 확장팩 설치가 안됩니다.
0
572
2





