일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 독서
- java
- java.sql.SQLException
- Code
- .decode('utf-8')
- 인텔리제이
- 프로그래머스
- 자바스프링
- PUT과 PATCH
- 객체지향
- 에러해결법
- jwt
- unmappable character for encoding MS949
- mysql
- MS949
- 항해99
- JSESSIONID
- API
- WIL
- ServerSelectionTimeoutError
- 스파르타코딩클럽
- 인프런
- 김영한
- 자바
- 스프링시큐리티
- HTML
- 알고리즘
- 엔터키 이벤트
- TIL
- org.h2.jdbc.JdbcSQLSyntaxErrorException
- Today
- Total
고을마을 : 나의 코딩 이야기
[스파르타코딩클럽] 웹개발 종합반 3주차 기록 본문
3주차 강의가 시작되었다.
파이썬, 크롤링, DB에 대해서 배웠다.
- 3-2 연습 겸 복습 - 스파르타피디아에 OpenAPI붙여보기
$(document).ready(function () {
listing();
});
function listing() {
$('#cards-box').empty()
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/web/api/movie",
data: {},
success: function (response) {
let rows = response['movies']
for (let i = 0; i < rows.length; i++) {
let title = rows[i]['title']
let desc = rows[i]['desc']
let image = rows[i]['image']
let star = rows[i]['star']
let comment = rows[i]['comment']
let star_image = '⭐'.repeat(star)
let temp_html = `<div class="col">
<div class="card">
<img src="${image}" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">${title}</h5>
<p class="card-text">${desc}</p>
<p>${star_image}</p>
<p class="mycomment">${comment}</p>
</div>
</div>
</div>`
$('#cards-box').append(temp_html)
}
}
})
}
2주차때 배웠던 ajax 코드를 활용해봤다.
자동 새로고침과 Open API 결과값을 temp_html에 반영해보았다.
이번 강의에서 .repeat()을 활용해 볼수 있었다.
.repeat()은 문자열을 주어진 횟수만큼 반복해 붙여주는 듯 하다.
잘 기억해두고 나중에 활용할 수 있는 기회가 오길...
- 3-3 파이썬 기초공부에서부터 3-8 웹스크래핑(크롤링) 연습까지의 내용
간단히 파이썬 문법을 배우고
파이썬 인터프리터에서 패키지를 설치하게 되었다.
bs4, requests, pymongo, dnspython만 설치했는데 여러 패키지가 함께 설치됐다!
select('') 와 select_one('') 을 통해 크롤링 성공!
위와 같은 방법을 통해서 선택자를 복사할수 있었고 select('') 와 select_one('')에 붙여넣을 수 있었다.
위와 같은 내용이 참고자료에 있었는데 강의에서 배운 내용이 아니라 아직 감이 잘 안온다.
나중에 크롤링을 더 깊게 배우게 된다면 활용하게 되려나..?ㅠㅠ
- 3-9 DB 개괄에서부터 3-14 웹스크래핑(크롤링) 결과 이용하기까지의 내용
mongoDB 연결법과 조작하는 방법을 배웠다.
# 저장 - 예시
doc = {'name': 'bobby', 'age':21}
db.users.insert_one(doc)
# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
mongoDB를 데이터를 저장하거나 불러올때 큰 참고자료가 될 듯하다.
movies = soup.select('#old_content > table > tbody > tr')
for movie in movies:
a = movie.select_one('td.title > div > a')
if a is not None:
title = a.text
rank = movie.select_one('td:nth-child(1) > img')['alt']
star = movie.select_one('td.point').text
doc = {
'title': title,
'rank': rank,
'star': star
}
db.movies.insert_one(doc)
# 저장 - 예시
doc = {'name': 'bobby', 'age':21}
db.users.insert_one(doc)
를 활용해서 mongoDB에 저장해보았다.
이후 웹스크래핑 결과를 이용해 보는 실습을 했는데 조금 어려웠다.ㅜㅜ
1. 가버나움의 평점 가져오기.
target_movie = db.movies.find_one({'title':'가버나움'})
print(target_movie['star'])
2. 가버나움의 평점과 같은 영화 제목 불러오기
target_movie = db.movies.find_one({'title':'가버나움'})
target_star = target_movie['star']
movies = list(db.movies.find({'star':target_star}))
for movie in movies:
print(movie['title'])
3. 가버나움 영화 평점을 0으로 만들기
db.movies.update_one({'title':'가버나움'},{'$set':{'star':'0'}})
- 3-15 3주차 끝 & 숙제설명
song= soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for sing in song:
rank = sing.select_one('td.number').text[0:2].strip()
title = sing.select_one('td.info > a.title.ellipsis').text.replace("19금","").strip()
singer = sing.select_one('td.info > a.artist.ellipsis').text
print(rank,title,singer)
이번 숙제는 지니뮤직 top50을 크롤링하는 것이었다.
랭크 부분에서 앞의 두자리만 나올수있도록 text[0:2]를 넣어주었고, 공백을 없애주기 위해 strip()을 넣어주었다.
저스틴비버의 peaches는 19금 노래라서 19금이 따라붙었는데
구글 검색 결과 replace("old","new")를 활용하면 새로운 문자열을 반환할 수 있음을 확인할수있었다!
replace("19금","")를 넣어주니 19금이란 글자가 사라졌다.
뿌듯하게 3주차 숙제까지 마칠수 있었다!
'스파르타코딩클럽 웹개발종합반' 카테고리의 다른 글
첫 협업 미니프로젝트- NETNOTE (0) | 2022.05.02 |
---|---|
[스파르타코딩클럽] 웹개발 종합반 5주차 기록 (0) | 2022.03.16 |
[스파르타코딩클럽] 웹개발 종합반 4주차 기록 (0) | 2022.03.15 |
[스파르타코딩클럽] 웹개발 종합반 2주차 기록 (0) | 2022.03.13 |
[스파르타코딩클럽] 웹개발 종합반 1주차 기록 (0) | 2022.03.12 |