srand(time(NULL); 이거 선언할 때마다 에러가 납니다. # include <time.h>를 추가해도 똑같습니다. Xcode에서는 random number를 구할 때는 다른 코딩을 쓰나요? 구글링해도 잘 안나오네요 왜 에러가 나는지도 모르겠고요.. 에러는 conflicting types for 'srand'라고 나옵니다..
명령을 ctrl+shift+space bar로 실행하면 코드 입력할때 Enter키로 아래에 공간 확보해놓은게 다 초기화되고(그 버공간이 다 사라지고) 마지막 명령 있는데로 가지는데 영상에서 하시는걸 보면 명령실행을 하셔도 명령 아래에 공백 (예를 들어 39번 줄에 print 명령이 있고 그 아래에 45번 줄까지 공백만 있는경우) 이 사라지지 않고 고정되있는데 어떻게 해야하나요?
let enterNewScene=false; 부분 문의 드립니다. let enterNewScene=false; 를 scrollLoop() 밖에 적고 다시 scrollLoop() 내에도 아래처럼 적는데요. function scrollLoop(){ enterNewScene=false; 이걸 밖에 let enterNewScene=false; 를 생략하고 scrollLoop() 내에 function scrollLoop(){ let enterNewScene=false; 라고만 하는것과 차이가있나요?
random_device seed; mt19937 engine(seed()); uniform_int_distribution <> uniformDist(1, 10); const auto sta2 = chrono::steady_clock::now(); //시간 재는중 for (long long i = 0; i < n_data; i++) { v0.push_back(uniformDist(engine)); v1.push_back(uniformDist(engine)); } const chrono::duration<double> dur2 = chrono::steady_clock::now() - sta2; //시간 재는 중 cout << dur2.count() << endl; 말씀하신 부분을 다음과 같이 해서 시간을 측정해보니 143.15초가 나왔습니다. for문을 이용해 vector에 값을 넣는 것에만 2~3분이 걸린 것입니다. 구글링 해본 결과 시간 복잡도 계산에 for문 기준으로 1억번 계산하는데 1초라는 내용을 알 수 있었습니다 for문안에 2억번 계산이 이루어지니까 산술적으로 2초가 걸립니다. 하지만 단순 값을 넣는 것이 아닌 완전 랜덤 숫자를 넣는 것이니까 2초보다는 조금 더 걸리겠지 라는 생각을 해봐도 시간이 지나치게 소요된다는 생각이 들었습니다. 교수님이 예제를 보여주실 때는 거의 순식간에 결과를 알 수 있었는데 이러한 차이가 어디서 오는건지 궁금합니다.
arr2d[0][0]와 **arr2d가 같다고 말씀하시는 부분에서 의문이 들어 질문드립니다. arr2d 자체가 전에 강의에서 설명 하신것처럼 이중포인터가 아니라 그냥 2차원 배열이라 주소자체가 따로 저장되는게 아니라서 주소가 한단계 밖에 없는데 arr2d의 역참조(*)가 두번이나 될수 있는게 이해가 잘안되네요ㅠ 설명부탁드립니다!
안녕하세요. 어제 라이브 재밌었습니다.신세경.. 미국엔 잘 돌아가셨는지 궁금하네요..ㅎㅎ 다름이 아니고, 강의를 보고 개인 프로젝트를 진행하려고 하는데 패키지 구조를 도메인형으로 해야할지, 계층형으로 해야 할지에서 부터 고민이 되어 질문드립니다. 기선님 강의에서는 도메인으로 나뉘었고, 펫클리닉 프로젝트도 찾아보니 도메인으로 나눠놓았더라구요 제가 본 여타 다른 강의들에서는 컨트롤러/서비스/레포지토리/exception/ 등등으로 나눠놓은 걸 보아 어떤 것이 정답이다 라는 것은 없는것 같기도하고.. 해서 블로그 글을 참고해서 보니 https://cheese10yun.github.io/spring-guide-directory/ 도메인이 더 낫다는 글을 보았습니다. 기선님 강의들에서는 더 나은 패키지구조 선택에 관해서 언급하셨던 기억이 없어서 질문드려요! 너무 좋은 강의 만들어주셔서 감사합니다. 많은 도움이 되고 있어요 :)
네이버 쇼핑 핫딜 데이터를 크롤링하는 과정에서 강의에서는 핫딜 버튼의 ClassName이 '_productSet_hotdeal'로 되어있어 driver.find_element_by_class_name("_productSet_hotdeal").click() 코드를 사용하여 버튼을 클릭했지만, 현재는 네이버 쇼핑 소스가 변경되어 모든 버튼의 ClassName이 'subFilter_filter__3Y-uy'로 되어있어 driver.find_element_by_css_selector("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > div.seller_filter_area > ul > li:nth-child(5) > button").click() 코드를 사용하여 버튼을 클릭하였습니다. 문제는, 버튼 클릭까지는 문제 없이 진행 되었지만 핫딜 페이지의 데이터를 출력하는 과정에서 핫딜 데이터를 출력하는 것이 아닌 기존의 데이터를 출력합니다. 어떻게 해결해야 될까요? - app.py from flask import Flask, render_template, request app = Flask(__name__) # crawling module import import requests from bs4 import BeautifulSoup # excel module import from openpyxl import Workbook write_wb = Workbook() write_ws = write_wb.active # 셀리니움 사용 전 크롬 웹드라이버 설치 # Web automation module import from selenium import webdriver @app.route("/") def hello_world(): return render_template("index.html") @app.route("/result", methods=["POST"]) def result(): keyword = request.form['input1'] page = request.form['input2'] daum_list = [] # crawling for i in range(1, int(page) + 1): req = requests.get("https://search.daum.net/search?nil_suggest=btn&w=news&DA=PGD&cluster=y&q=" + keyword + "&p=" + str(i)) soup = BeautifulSoup(req.text, "html.parser") for i in soup.find_all("a", class_="f_link_b"): daum_list.append(i.text) # excel for i in range(1, len(daum_list) + 1): write_ws.cell(i, 1, daum_list[i-1]) write_wb.save("static/result.xlsx") return render_template("result.html", daum_list = daum_list) @app.route('/naver_shopping') def naver_shopping(): driver = webdriver.Chrome('./chromedriver.exe') driver.implicitly_wait(3) driver.get("https://search.shopping.naver.com/search/all?query=%EA%B3%B5%EA%B8%B0%EC%B2%AD%EC%A0%95%EA%B8%B0&frm=NVSHATC&prevQuery=%EA%B3%B5%EA%B8%B0%EC%B2%AD%EC%A0%95%EA%B8%B0") soup = BeautifulSoup(driver.page_source, "html.parser") for i in soup.select("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > ul > div > div > li"): print(i.find("a", class_="basicList_link__1MaTN").text) print("---------------------------") driver.find_element_by_css_selector("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > div.seller_filter_area > ul > li:nth-child(5) > button").click() soup = BeautifulSoup(driver.page_source, 'html.parser') for i in soup.select("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > ul > div > div > li"): # 핫딜 페이지로 정상적으로 이동되어 있지만 기존의 페이지의 데이터를 출력함 print(i.find("a", class_="basicList_link__1MaTN").text) return render_template("shopping.html") if __name__ == "__main__": app.run() - 실행결과