파이썬 공부시작 with 스파르타코딩클럽~
* 구글 Colab 환경으로 배움.
- 구글 Colab은 브라우저 상에서 파이썬 코딩을 할 수 있게 해둔 환경~
요즘 구글스프레드시트, 구글슬라이드 덕분에 엑셀과 파워포인트에서 저장버튼 누르기를 깜박하여 자료가 날라가는 고통을 없앴는데 코딩도 구글환경으로 할수 있구나 짱이다!
* 무료로 제공되는 만큼 '사용제한'이 있음 => 연속연결시간 최대 90분, 하루 이용 제한 12시간
* 코딩실행 : ctrl + enter
1) 변수&기본연산
a = 3 # 3을 a에 넣는다
b = a # a를 b에 넣는다
a = a + 1 # a+1을 다시 a에 넣는다
num1 = a*b # a*b의 값을 num1이라는 변수에 넣는다
num2 = 99 # 99의 값을 num2이라는 변수에 넣는다
# 변수의 이름은 마음대로 지을 수 있음!
# 진짜 "마음대로" 짓는 게 좋을까? var1, var2 이렇게?
2) 리스트, 딕셔너리 형
a_list = ['사과','배','감','수박']
a_list[0]
a_list.append('귤')
a_list[4]
⇒ 리스트형은 순서가 중요함.
파이썬은 0부터 센다.
a_list[0] 하면 '사과'출력됨
a_list.append('귤') - 리스트에 귤을 추가해라
a_list[4] - 리스트에서 4번째를 출력해라(0부터 시작하니까 '귤'이 출력됨)
⇒ Dictionary 형 : { key : value } 형태가 중요!
a_dict = {'name':'bob','age':21}
a_dict['age']
a_dict['height'] = 178
a_dict
⇒ Dictionary 형과 List 형의 조합
people = [{'name':'bob','age':20},{'name':'carry','age':38}]
# people[0]['name']의 값은? 'bob'
# people[1]['name']의 값은? 'carry'
person = {'name':'john','age':7}
people.append(person)
# people의 값은? [{'name':'bob','age':20},{'name':'carry','age':38},{'name':'john','age':7}]
# people[2]['name']의 값은? 'john'
3)함수
def sum(a,b):
return a+b
def mul(a,b):
return a*b
result = sum(1,2) + mul(10,10)
# result라는 변수의 값은?
4)조건문
if age > 20:
print('성인입니다') # 조건이 참이면 성인입니다를 출력
else:
print('청소년이에요') # 조건이 거짓이면 청소년이에요를 출력
is_adult(30)
5)반복문
ages = [20,30,15,5,10]
for age in ages:
print(age)
###
for age in ages:
if age > 20:
print('성인입니다')
else:
print('청소년이에요')
⇒ 조건문 + 함수 + 반복문을 한번에 사용해보기
def check_adult(age):
if age > 20:
print('성인입니다')
else:
print('청소년이에요')
ages = [20,30,15,5,10]
for age in ages:
check_adult(age)
업무자동화 - 스크랩핑실습
웹스크래핑해보기
*크롤링 기본 코드
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://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query=삼성전자',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
⇒ requests 로 정보를 가져와서 → BeautifulSoup으로 분석하기 좋게! 만드는 것이랍니다.
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://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query=삼성전자',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
⇒ select_one 과, select 만 기억하면 됩니다!
⇒ 우선, 따라하면서 익혀볼까요?
a = soup.select_one('#sp_nws1 > div.news_wrap.api_ani_send > div > a')
a['href']
a.text
웹스크래핑 정리해보기
⇒ 1. 우선,이제 여러 개의 기사 제목을 가져와보겠습니다.
lis = soup.select('#main_pack > section > div > div.group_news > ul > li')
⇒ 2. 그리고 그 안에서 우리가 원하는 a 태그를 가져와보겠습니다.
lis[0].select_one('a.news_tit')
⇒ 3. 마지막으로 반복문을 활용해 정리할 수 있습니다.
lis = soup.select('#main_pack > section > div > div.group_news > ul > li')
for li in lis:
a = li.select_one('a.news_tit')
print(a.text, a['href'])
함수만들기
⇒ ‘삼성전자’와 같이 키워드만 바꿔 입력하면 뉴스를 볼 수 있게 만들어볼까요?
def get_news(keyword):
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(f'https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query={keyword}',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
lis = soup.select('#main_pack > section > div > div.group_news > ul > li')
for li in lis:
a = li.select_one('a.news_tit')
print(a.text, a['href'])
⇒ “현대자동차”를 입력해볼까요?
업무자동화_엑셀다루기
1) openpyxl 라이브러리 설치하기
- ⇒ openpyxl 도 마찬가지로 누군가 만들어둔 코드랍니다!
pip install openpyxl
2) 엑셀 파일 만들어보기
*코드스니펫 기본코드
from openpyxl import Workbook
wb= Workbook()
sheet = wb.active
sheet['A1'] = '안녕하세요!'
wb.save("샘플파일.xlsx")
wb.close()
엑셀읽기 코드스니펫
import openpyxl
wb = openpyxl.load_workbook('샘플파일.xlsx')
sheet = wb['Sheet']
sheet['A1'].value
파일압축하기
!zip -r /content/files.zip /content/news
이미지 다운로드
import urllib.request
url = 'https://ssl.pstatic.net/imgfinance/chart/item/area/year3/005930.png'
urllib.request.urlretrieve(url, "samsung.jpg")
업무자동화를 위해 기본적으로 스크래핑을 하고 이미지 다운받는 파이선 명령어를 배웠는데 파이썬에 대한 기초가 너무 없는 상황이라 선생님이 엄청 쉽게 설명해주시고 있다는 걸 알겠음에도 너무 어렵게 느껴졌다. 반복. 반복으로 해결하는 수밖에.!!
'Week I Learned' 카테고리의 다른 글
[SQL]스파르타코딩클럽3-3,4 본격 쿼리 작성해보기 스터디노트 (0) | 2023.02.13 |
---|---|
[SQL]연결하기 JOIN_스파르타코딩3주차강의노트 (0) | 2023.02.10 |
[파이썬]스파르타코딩클럽2주차:손쉽게 다루는 해외주식-데이터분석기초, 해외주식다루기 (0) | 2023.02.09 |
[SQL]GROUP BY / ORDER BY 내가 원하는대로 묶고 정렬하기 (0) | 2023.02.03 |
[SQL]시작은 SELECT/FROM/WHERE (0) | 2023.02.02 |