파이썬 기초문법
파이썬은 코드가 직관적이다.
변수 - a = 3
리스트 - a_list = ['배', '참외', '사과']
딕셔너리 - a_dict = {'name': 'tommy', 'age': 28}
조건문 -
if a_dict['age'] < 30:
print('어리네요')
elif a_dict['age'] > 30:
print('많네요')
else:
print('모르겠네요')
반복문 -
for fruit in a_list:
print(fruit)
파이썬 패키지
파이썬 패키지는 일종의 기능들을 묶어놓은 모듈로써, 이런 패키지의 묶음을 라이브러리라고 합니다.
import requests
r = requests.get('url')
rjson = r.json()
gus = rjson['RealtimeCityAir']['row']
for gu in gus:
print(gu['MSRSTE_NM'], gu['IDEX_MVL']
import requests
from bs4 import BeautifulSoup
#타겟 URL을 읽어서 HTML를 받아오고,
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)QppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = reauests.get('URL')
#HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
#soup이라는 변수에 "파싱 용이해진 html"이 담긴 상태가 됨
#이제 코딩을 통해 필요한 부분을 추출하면 된다.
soup = BeautifulSoup(data.text, 'html.parser')
등등,,, 파이썬의 유용한 패키지는 많다.
웹스크래핑
웹스크래핑은 인터넷에 존재하는 많은 정보를 가져와서 취합하여 사용하는 것을 말한다.
불러오는 방법은,
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)QppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = reauests.get('불러오고 싶은 URL')
soup = BeautifulSoup(data.text, 'html.parser')
#select를 이용해서, tr들을 불러오기
#원하는 사이트에 가서 불러오길 원하는 곳을 우클릭 > 검사 > copy > copy selector을 한다
movies = soup.select('#old_content > table > tbody > tr')
for movie in movies:
#movie 안에 a가 있으면,
a_tag = movie.select_one('td.title>div>a')
if a_tag is not None:
#a의 text를 찍어본다.
print(a_tag.text)
beautifulsoup 내 select에 미리 정의된 다른 방법은,
#선택자를 사용하는 방법(copy selector)
soup.select('태그명')
soup.select('클래스명')
soup.select('#아이디명')
soup.select('상위태그명 >하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위캐그명.클래스명')
#태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')
#한 개만 가져오고 싶은 경우
soup.select_one('태그명[속성="값"]')
mongoDB에 대해
몽고DB Atlas를 이용해 정보 데이터베이스를 저장하고 불러오고 업데이트하며 정보를 관리한다.
데이터베이스를 관리하는 건, SQL(RDBMS)과 NoSQL(Not only SQL)이 있다
mongoDB Atlas를 사용하기 위한 패키지는
pymongo, pnspython, 때에따라 certifi 가 필요하다
기본 코드는,
import certifi
from pymongo import MongoClient
ca = certifi.where()
client = MongoClient('mongodb+srv://본인ID:본인PW@Cluster0.3ar0e.mongodb.net/본인몽고디비이름?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.본인디비프로젝트이름
이며, 정보를 저장하고 수정하고 삭제하는 코드는,
#저장
cod = {'name': 'bob', 'age' : 27}
sb.user.insert_one(doc)
#파일 하나 찾기
user = db.user.find_one({'name':'bob'})
#여러개 찾기 (_id 값은 제외하고 출력하기)
all_users = list(db.users.find({조건},{'_id':False}))
#수정
db.users.update_one({'name':'bob'},{'$set':{'age':19}})
#삭제
db.users.delete_one({'name':'bob'})
웹스크랩핑할 때 공백이 있으면 strip(), 앞 두글짜만 끊기는 [0:2]