[TIL] 웹개발 종합반 3주차
웹개발 종합반 3주차
forEach문으로 반복을 돌면서, 하나씩 출력
<script>
fetch("http://spartacodingclub.shop/web/api/movie")
.then(response => response.json())
.then(data => {
let movies = data['movies']
movies.forEach((movie) => {
console.log(movie)
})
})
</script>
repeat()
repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환한다.
<script>
let star_image = '⭐'.repeat(star)
</script>
가상환경(virtual environment)
같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
크롤링 기본 세팅
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.36 data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
select / select_one
- 태그 안의 텍스트를 찍고 싶을 땐 → 태그.text
- 태그 안의 속성을 찍고 싶을 땐 → 태그[‘속성’]
# 선택자를 사용하는 방법 (copy selector)
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위트개명,클래스명 > 하위태그명,클래스명')
# 태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')
# 한 개만 가져오고 싶은 경우
soup.select_one('위와 동일')
# 개발자 도구에서 Copy selector로 선택자 복사 가능!
pymongo 기본 코드
from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('mongodb://spart:test@ac-ywf5hos-shard-00-00.vcctwzu.mongodb.net:27017,ac-ywf5hos-shard-00-01.vcctwzu.mongodb.net:27017,ac-ywf5hos-shard-00-02.vcctwzu.mongodb.net:27017/?ssl=true&replicaSet=atlas-1f9jmh-shard-0&authSource=admin&retryWrites=true&w=majority',tlsCAFile=ca)
db = client.dbsparta
pymongo로 mongoDB 조작하기
- DB 연결하기 & 데이터 넣기
'users'라는 collection에 {'name':'bobby','age':21}를 넣는다. db.users.insert_one({'name':'bobby','age':21}) db.users.insert_one({'name':'key','age':27}) db.users.insert_one({'name':'john','age':30})
- 모든 결과 값을 보기
all_users = list(db.users.find({},{'_id':False}) print(all_users[0]) # 0번째 결과값을 보기 print(all_users[0]['name']) # 0번째 결과값의 'name'을 보기 for user in all_users: # 반복문을 돌며 모든 결과값을 보기 print(user)
- 특정 결과 값을 뽑아 보기
user = db.users.find_one({'name':'bobby'})
- 수정하기
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
- 삭제하기
db.users.delete_one({'name':'bobby'})
3주차 숙제 : 스크래핑 하기
```python import requests from bs4 import BeautifulSoup
headers = {‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36’} data = requests.get(‘https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20210701’,headers=headers)
soup = BeautifulSoup(data.text, ‘html.parser’)
trs = soup.select(‘#body-content > div.newest-list > div > table > tbody > tr’)
for tr in trs: rank = tr.select_one(‘td.number’).text[0:2].strip() title = tr.select_one(‘td.info > a.title.ellipsis’).text.strip() artist = tr.select_one(‘td.info > a.artist.ellipsis’).text print(rank, title, artist)
```
댓글남기기