안녕하세요. 선생님 강의 잘 듣고 있습니다. 강의를 들으면서 책을 보고 웹 크롤링으로 데이터를 다운 받아 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")
안녕하세요! 좋은강의 감사드립니다 :) 해당 강의를 보면서 궁금한 사항이 있어 질문드립니다. 다음과 같이 강의내용과 동일하게 Dockerfile을 작성하고 FROM mariadb ENV MYSQL_ROOT_PASSWORD test1357 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql /var/lib/mysql EXPOSE 3306 ENTRYPOINT ["mysqld", "--user=root"] build -> run 한 결과 container가 exited 상태가 되었고, 로그를 확인해보니 2021-05-22 6:01:48 0 [Note] Plugin 'FEEDBACK' is disabled. 2021-05-22 6:01:48 0 [ERROR] Could not open mysql.plugin table: "Table 'mysql.plugin' doesn't exist". Some plugins may be not loaded 2021-05-22 6:01:48 0 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist 2021-05-22 6:01:48 0 [Note] Server socket created on IP: '::'. 2021-05-22 6:01:48 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.db' doesn't exist 2021-05-22 6:01:48 0 [ERROR] Aborting 다음과 같은 에러가 발생했습니다. 혹시, 별다른 추가 설정이 더 필요한 것일까요?
58 강 막바지인데 따라서 전부 설정을 하고나서도 base.css 나 글꼴이 일부 적용이 안되고있습니다... staticfile들이 불러와지지 않는것 같습니당ㅠㅠ 밑에 사진을 첨부했는데 header에서는 적용이 안되는데 또 밑에 hello world List에서는 적용이 됩니다. 어디부터 확인해봐야되는건지 잘 모르겠어서 이렇게 질문을 드립니다.... 질문도 좀 제대로 드리고싶은데.... 이건 어디서부터 다시 봐야하는지 전혀 감을 못잡겠습니다. 질문 봐주셔서 감사드립니다!
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
파이썬 공식 문서 --버전 3.8부터 폐지: aws 에 있는 어웨이터블이 코루틴이면, 자동으로 태스크로 예약됩니다. 코루틴 객체를 wait() 로 직접 전달하는 것은 혼란스러운 동작 으로 연결되므로 폐지되었습니다. -- async def process_async(): start = time.time() task1 = asyncio.create_task( exe_calculate_async('One', 3)) task2 = asyncio.create_task( exe_calculate_async('Two', 2)) task3 = asyncio.create_task( exe_calculate_async('Three', 1)) await task1 await task2 await task3 end = time.time() print(f'>>> Total seconds: {end - start}') 문제 없이 실행 되었습니다.
안녕하세요 강사님. 제가 윈도우 유저라서, 강사님께서 알려주신대로 Malgun Gothic 을 사용해서 원하는 결과값을 얻었습니다. 여기서 추가되는 질문이, 해당 폰트 말고 다른 폰트로 입력하려 하는데 이 입력값은 어떻게 알 수 있을까요? 예컨대 맑은 고딕이 한글로 "맑은 고딕"이 아닌, "Malgun Gothic" 이라는 것을 어떻게 알 수 있는 것일까요? C:/Windows/Fonts 에서 폰트 파일들을 확인해도 파일명은 한글로 나와있어서, 구체적으로 어떻게 입력하면 좋을지 알고 싶습니다!
안녕하세요 강사님. nbextensions 설치 후 화면을 보았는데, 강의 화면과는 달리 선택할 수 있는 항목이 별로 없더라고요. 1강에서 강사님께서 보여주신 목차 기능 또한 보이지 않는 상황입니다. 다른 분이 질문한 글을 보면서 체크 표시 해제도 해보고, refresh도 해보았는데 그 상황 그대로입니다. pip과 conda를 이용해서 둘 다 재설치를 해봤는데도 마찬기지인 상황입니다. 혹시 해결책을 알 수 있을까요..?
개인 토이 프로젝트를 하나 하고 있는데요, 혹시 next.js에서 도메인 라우팅 하는 방법이 있나요? 문제가 뭐냐면 제가 만든 토이 프로젝트가 있는데 http://www.hubfoodlink.com 으로 접속해서 해당 정보를 클릭하면 리엑트 컴포넌트 모달창이 띄워지는데, http://hubfoodlink.com 으로 접속하면 접속은 되는데 정보 클릭 시 리엑트 컴포넌트 모달창이 안뜨고 An unexpected error has occurred. 라고 떠서 문제가 발생되네요 ㅠ 아니면 http://hubfoodlink.com 접속시 www을 붙여서 http://www.hubfoodlink.com접속이 되게 하는 방법이 있을까요? 물론 강의와 관련없는 질문이긴한데 몇일간 찾아보고 고민해봐도 해결되지 않아서 염치불구하고 질문을 올려봅니다. 죄송합니다 ㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이 예제에서 리스트컴프리헨션을 temp2에 할당할 때, generator_ex2( )가 실행되면서 인자는 리스트에 담기고, start, continue, end가 출력돼서 저렇게 뜨는건가요? 뭔가 머릿 속으로는 아는 것 같은데, 막상 글로 표현하려니 모르는 것 같네요;;
ERROR: Could not install packages due to an OSError: [WinError 5] 액세스가 거부되었습니다: 'C:\\Users\\leehb\\AppData\\Local\\Temp\\pip-uninstall-87624jrp\\pip.exe' Consider using the `--user` option or check the permissions. 이렇게 나왔다가 pip install datetime WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: c:\python38-64\Include\UNKNOWN sysconfig: c:\python38-64\Include WARNING: Additional context: user = False 이렇게 뜹니다. 이거 어떻게 해결해야할까요?
ValueError: unknown format code 'd' for object of type 'str' 이라고 뜨네요 krx/listing.py 에서 df_listing['Symbol'] = df_listing['Symbol'].apply(lambda x: '{:06d}'.format(x)) 이부분에서 x값이 string으로 들어가서 문제가 생기는듯 합니다. 버전은 선생님 버전이랑 같은데 뭐가 문제인지 몰겠네요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 선생님 3.3 네이버금융 개별종목 수집 강의 중 파일 자동 저장 코드 에서 저장할 디록토리를 지정하는 방법 있을까요? 수동으로 저장할때 보통 df.to_csv("../data/test.csv") 이런식으로 저장디렉토리에 저장 하는데 변수로된 파일명을 ""안에 입력하니 에러가 나서 다른 방법이 있는지요? 항상 강의 잘 듣고 있습니다. 감사합니다.
안녕하세요. nginx 컨테이너 만들기의 경우 index.html 파일이 저장된 제 로컬 PC의 경로만 수정하여 잘 실행됨을 확인하였습니다. (코드 실행 이후 크롬 주사창에 localhost:50000 입력시 hello world 가 출력되던데 제가 제대로 실습 결과를 확인한 걸로 보면 되겠죠?) 그런데 php cli 컨테이너의 경우 어떻게 제대로 실행했는지 확인하는 방법을 모르겠습니다. docker ps -a 를 입력해도 실행 목록중에 php가 나오지 않습니다. 뭔가 아래와같이 phpinfo() 를 실행한듯한 결과들이 쭉... 나오는데 이게 실습 성공한걸까요? 또한, 만약 이게 성공한거라면.. docker ps -a 에서는 왜 실행중인 컨테이너가 보이지 않을까요? 해당 명령어는 phpinfo()만 출력하는거라서 그런걸까요?