목록분류 전체보기 (297)
가수면
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/3xCcE/btrPUmSDMTr/XGcotkkUQFpQ9jJFM52siK/img.png)
토이 프로젝트 3일 차. 진행 상황과 그 과정에서 겪은 몇 가지 이슈에 대해 다뤄보고자 한다. 이슈 1. 프린트 공백 드디어 어제 골머리를 싸매게 만들었던 문제를 동기의 도움을 받아 해결했다! (동기 사랑 나라 사랑!) tagTemp = '#contents > div.wrap-movie-chart > div.sect-movie-chart > ol:nth-child(number) > li' for i in range(4,51,2): tag = tagTemp.replace('number',str(i)) movies = soup.select(tag) for movie in movies: title = movie.select_one('div.box-contents > a > strong').text print(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MjWYm/btrPPVWi3Pi/1uy8KvLk6mUoM4bO61Z7L0/img.png)
문제 크롤링을 하다가 문제에 부딪혔다. 배운 대로 크롤링을 하기 위해 2022.10.29(토)에 있는 영화의 제목들을 'selector 복사' 해왔다. #contents > div.wrap-movie-chart > div.sect-movie-chart > ol:nth-child(4) > li:nth-child(1) > div.box-contents > a > strong #contents > div.wrap-movie-chart > div.sect-movie-chart > ol:nth-child(4) > li:nth-child(2) > div.box-contents > a > strong 아래와 같이 중복되는 부분을 잡고 그 제목 부분을 추출해냈다. movies = soup.select('#content..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dB9igW/btrPJWN0vYK/EQuZrsVRj3XULHrHG8ky40/img.jpg)
목표 각 조원이 아이디어 낸 것을 투표한 결과, 우리 조는 cgv 홈페이지를 크롤링해보기로 했다. 내가 구현해야 할 기능은 아래와 같다. 상영예정작 페이지를 만드는 것으로, cgv 홈페이지에서 포스터, 제목, D-day, 예매율, 개봉 날짜를 크롤링해와야 할 것으로 보인다. 진행상황 cgv, 무비차트, 상영예정작, 코멘트 남기기에 해당 페이지로 넘어갈 수 있도록 각각 하이퍼링크 걸어놓음 구글과 함께 html 틀을 완성시켰다. 아래 포스터 만드는 부분에서 꽤 시행착오를 겪었다. 처음엔 배운 대로 부트스트랩을 이용해보려고 했는데 카드박스의 실선이 제대로 표시되지 않아 한참을 뒤적인 결과, 부트스트랩 스크립트를 따로 추가해줘야 한다는 걸 알았다... (강의 땐 템플릿을 그냥 무지성 복붙 해서 스크립트 추가해줘..
1. repository 만들기 2. git bash 에서 환경설정 하기 (한 번만 하고 이후부턴 3번 과정부터 하면 되는 듯)2-1.유저이름 설정git config --global user.name "your_name"2-2. 유저 이메일 설정하기git config --global user.email "your_email"2-3. 정보 확인하기git config --list 3. github에 업로드하기 (터미널에 입력)3-1. 초기화 (처음 한 번만)git init3-2. 추가할 파일 더하기# 전부git add .# 지정 파일git add 파일명.확장자3-3. 상태 확인 (선택사항)git status3-4. 히스토리 만들기git commit -m "first commit"3-5. Github repo..
전체적으로 어렵진 않았으나 함수, 클래스와 객체, 배열 연습 부분은 다시 복습해볼 필요가 있음. *문자열 붙이기* 문자열과 숫자를 이어붙이면 숫자가 문자로 인식된다 console.log('1'+2) 12 *증감연산자* 증감연산자의 위치 # 증감연산자를 앞에 놓을 때 let count = 1 const preCount = ++count console.log(`count: ${count}, preCount: ${preCount}`) count: 2, preCount: 2 # 증감연산자를 뒤에 놓을 때 let count = 1 const preCount = count++ console.log(`count: ${count}, preCount: ${preCount}`) count: 2, preCount: 1 *대..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cZpblG/btrPrm8hfvk/1I9tP3hzClWBQiQYnm9HOk/img.png)
1. '가비아'에서 사이트 구매하기 2. Amazon EC2 만들기 2-1. Amazon EC2 들어가기 2-1. 인스턴스 시작>이름 입력>Ubuntu Server 20.04>t2.micro 새 키 페어 생성>이름, RSA, .pem으로 생성>인스턴스 시작 ※ 인스턴스 중지(컴퓨터 끄기), 인스턴스 종료(컴퓨터 반납), 1년 1대 무료(무료 기간 후 결제가 되기 전 종료 필요) 3. Git Bash 세팅 (처음에만. 이후에는 ↑ 방향키 눌러 3-3 명령어로 접속하면 됨. 띄어쓰기 주의!) 3-1.Git Bash 실행 3-2. sudo chmod 400 (400뒤로 .pem파일 끌어넣기. 맥 전용) 3-3. ssh -i (키페어 끌어넣기) ubuntu@(인스턴스 '퍼블릭 IPv4 주소' 붙여넣기) 3-4...
*여러 페이지 만들기* # http://localhost:5000/ @app.route('/') def home(): return render_template('index.html') # http://localhost:5000/mypage @app.route('/mypage') def mypage(): return render_template('mypage.html') *서버 준비* 1. html 읽어오기 from flask import Flask, render_template app = Flask(__name__) @app.route('/') def home(): return render_template('index.html') if __name__ == '__main__': app.run('0.0.0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/U7shz/btrPf41cu9S/VlKDiNUmCmUGozfvtx2Ky0/img.png)
-자바스크립트 코드들- *홈페이지 로딩 후 실행* $(document).ready(function () { listing(); }); *반복 함수*let star_image = '⭐'.repeat(star)star만큼 반복 -python 문법- · 파이썬은 let 붙일 필요 없음· 파이썬은 중괄호 필요 없음. : 찍고 탭(탭 해서 들여 쓴 것들이 내용물) *python 리스트 추가*a_list = []a_list.append(1) # 리스트에 값을 넣는다a_list.append([2,3]) # 리스트에 [2,3]이라는 리스트를 다시 넣는다 *크롤링(홈페이지에서 html 가져오기) 기본 세팅*import requestsfrom bs4 import BeautifulSouph..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AJXhF/btrPkqVwodp/8Kr78vxY8LwVCqrGJUB1oK/img.png)
-자바스크립트- 홀짝 함수 let count = 0 function hey() { count += 1 if (count % 2 == 0) { alert('짝수입니다') } else { alert('홀수입니다') } } -JQuery- *JQuery 추가* *기타 메모* class = css id = JQuery *JQuery 코드들* # 가져오기 $('#url').val() # 보이기 $('#post-box').show() # 숨기기 $('#post-box').hide() $('#id')(id에 JQuery를 먹인다).val('홍길동')(id에 홍길동이라는 value를 넣는다) *연습 1* function q1() { let a = $('#input-q1').val() if (a == '') { aler..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/J3qL5/btrPe8BiIwt/gCanWdzQPuWObsYYRWW5Yk/img.png)
드디어 코로나의 마수로부터 어느 정도 해방되어 살만해졌다. 혼미했었던 정신을 털어내고 복습하는 시간을 갖도록 해보자. html 기본 양식 # 브라우저 네모 창 안에 들어가는 애들 나는 구역을 나누죠 나는 문단이에요 bullet point!1 bullet point!2 h1은 제목을 나타내는 태그입니다. 페이지마다 하나씩 꼭 써주는 게 좋아요. 그래야 구글 검색이 잘 되거든요. h2는 소제목입니다. h3~h6도 각자의 역할이 있죠. 비중은 작지만.. span 태그입니다: 특정 글자를 꾸밀 때 써요 a 태그입니다: 하이퍼링크 img 태그입니다: input 태그입니다: button 태그입니다: 버튼입니다 textarea 태그입니다: 나는 무엇일까요? *연습1* 로그인 페이지 ID: PW: 로그인하기 보완해야 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TpTCT/btrO9AMrqHB/x7va066unPI61vrGRnwctk/img.png)
-리눅스 명령어- mkdir = 새 폴더 ls = 현재 폴더 확인 cd 폴더 명(다 쓸 필요 없이 Tab버튼 누르면 자동 완성) = 들어가기 cd .. = 나오기 cp -r 복사할 것 / 붙여넣기 할 것 = 복사 붙여넣기 rm -rf 지울 것 = 지우기 sudo 실행 할 명령어 = 명령어를 관리자 권한으로 실행 sudo su: 관리자 권한으로 들어가기 (나올 때는 exit) 패키지 설치 pip install flask pip install pymongo pip install dnspython python app.py = app.py 켜기 nohup python app.py & = 항상 켜두기 ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill =..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bYzgjC/btrO31jgwdA/5iZRc4iKiELDgeMr263ErK/img.png)
-Flask-*경로 만들기 (구조)*static 폴더 (이미지, css파일을 넣어둡니다.)templates 폴더 (html 파일을 넣어둡니다.)*파일 만들기*app.pyindex.html (templates 폴더)*패키지 설치*flaskpymongodnspython(크롤링이 필요하다면 requests와 bs4도 설치) *연습*'응원 남기기' 버튼을 누르면 그 결과를 서버에 저장하고 밑에 댓글로 나타내기 1. POST방식(서버에 저장) 설정아래의 클라우드(mongo DB) pymongo 패키지 양식을 app.py상단에 붙이기from pymongo import MongoClientclient = MongoClient('mongodb+srv://test:@cluster0.q4umm5t.mongodb.net/?..
from pymongo import MongoClient client = MongoClient('mongodb+srv://test@cluster0.q4umm5t.mongodb.net/?retryWrites=true&w=majority') db = client.dbsparta(폴더명) *데이터 저장하는 방법들* 1. 한 개 저장 doc = {'name':'bob','age':27} db.users.insert_one(doc) 2. 여러 개 저장 db.users.insert_one({'name':'bobby','age':27}) db.users.insert_one({'name':'john','age':20}) db.users.insert_one({'name':'ann','age':21}) *데이터 찾기* 1..
단순 지칭 및 첨언 *requests 패키지* import requests (requests 라이브러리 설치 필요) r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair') rjson = r.json() rows = rjson['RealtimeCityAir']['row'] for row in rows: gu_name = row['MSRSTE_NM'] gu_mise = row['IDEX_MVL'] if gu_mise 검사>복사>selector 복사)) print(title) 밥정 print(title['href']) /movie/bi/mi/basic.naver?code=186114 print(title.text) 밥정 *영화 제목, 순위, ..
-파이썬- 우클릭 후 실행 권장(상단의 실행이나 실행창의 실행 버튼을 누를 경우 다른 파일이 실행될 수가 있음) *문자열 더하기* a = 2 b = 1 print(a+b) 3 a = 'jihyeon' b = 'choi' print(a+b) jihyeonchoi *리스트* a_list = ['사과','배','감'] print(a_list[0]) 사과.index(값)값에 해당하는 index를 반환. 시간복잡도 n *자바스크립트, 파이썬 리스트 추가* a_list = ['사과','배','감'] a_list.append('수박') 자바스크립트에선 .push print(a_list) ['사과', '배', '감', '수박'] .extend()append는 하나로 추가하는데 extend는 전부를 추가함a = ['Ti..
-자바스크립트- 단순 지칭 중요 *빈칸 채워서 그거 알림 띄우기* function q1() { //입력값 지정하기 let 아무이름 = $('#input-q1(빈칸id임)').val(); //비어있다면 if (value == '') { //알림 띄우기 alert('입력하세요!')} //아니면 임의 값 띄우기 else { alert(value)} } *빈칸에 입력한 yhhnnmm@gmail.com에서 gmail만 띄우기* function q2() { //입력값 지정하기 let 아무이름 = $('#input-q2(빈칸 id임)').val(); //만약 입력값에 @가 있다면 if (email.includes("@") == true) { //@로 나누고, .으로 다시 나눠서 띄우기 alert(email.split..
-프론트 관련- *간격, 여백* margin (외부 간격) padding (내부 간격) *주석 (임시 생략)* 컨트롤+/ *style 세트들* 스타일 백그라운드 이미지 background-image: url("https://w.namu.la/s/385693ee286b4bac439fa5c333d820817d0ad49a150f43f1c4f6aaac1d22a77b7c64865c856ce1ee54b483f8599b252d0dc452041a444108ec1268d1e1efb2794edb7605a195e12d417fa3aba8e038792ea650dc547e98a66e2c76d045fa9734"); background-position: center; background-size: cover; 스타일 글씨 displ..