Python이란?
Python이란 수많은 개발 언어 중 하나이고, 쉽고 간편하다는 장점이 있다.
웹 크롤링을 위해 몇가지 라이브러리를 설치하여 사용하는데 그 쓰임새는 다음과 같다.
1. requests 라이브러리는 2주차의 ajax와 같이 서버에 데이터를 요청하여 JSON형태로 받아오게 해주는 라이브러리이다.
import requests # requests 라이브러리 설치 필요
r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()
gus = rjson['RealtimeCityAir']['row']
for gu in gus:
print(gu['MSRSTE_NM'], gu['IDEX_MVL'])
2. bs4 라이브러리는 Html을 받아와 그것을 잘 처리하게 도와주는 라이브러리이다.
import requests
from bs4 import BeautifulSoup
# 타겟 URL을 읽어서 HTML를 받아오고,
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://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)
# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
# soup이라는 변수에 "파싱 용이해진 html"이 담긴 상태가 됨
# 이제 코딩을 통해 필요한 부분을 추출하면 된다.
soup = BeautifulSoup(data.text, 'html.parser')
Database란?
우리가 저장할 데이터를 잘 정리하여 사용할 수 있게 해주는 도구이다.
3주차 수업에서는 몽고DB와 Pymongo 라이브러리를 사용하여 파이썬에서 DB에 접근하였다.
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta
doc = {
'name':'bob',
'age':27
}
db.users.insert_one(doc)
3주차 숙제
3주차 숙제는 지니뮤직의 1~50순위의 곡들의 정보를 크롤링 해오는 것이다.
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',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
songs = soup.select('.music-list-wrap > table > tbody > tr')
for song in songs:
rank = song.select_one('td.number').contents[0].text.strip()
info_tag = song.select('td.info > a')
title = info_tag[0].text.strip()
artist = info_tag[1].text.strip()
print(rank, title, artist)
먼저 requests 라이브러리를 통해 지니뮤직의 top200(https://www.genie.co.kr/chart/top200)의 데이터들을 받아온다.
그 다음 bs4를 통해 그 데이터를 가공하고 그 중 music-list-wrap이라는 클래스를 가진 태그 하위으 tr 태그들을 songs라는 변수에 저장하였다.
그리고 그 songs들 중 td.number의 첫번째 내용은 순위인 rank,
td.info의 a 태그 중 첫번째는 제목인 title, 두번째는 가수인 artist로 뽑아내어 출력하였다.
'교육 > 스파르타코딩클럽 - 내일배움단' 카테고리의 다른 글
[5주차] AWS로 웹서비스 배포하기 (0) | 2022.11.16 |
---|---|
[4주차] 파이썬 Flask (0) | 2022.11.16 |
[2주차] JQuery와 Ajax (0) | 2022.11.16 |
[1주차] HTML, CSS, JS 기본 (0) | 2022.10.19 |