본문 바로가기

Week I Learned

[파이썬]스파르타 코딩클럽으로 입문하기

파이썬 공부시작 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")

업무자동화를 위해 기본적으로 스크래핑을 하고 이미지 다운받는 파이선 명령어를 배웠는데 파이썬에 대한 기초가 너무 없는 상황이라 선생님이 엄청 쉽게 설명해주시고 있다는 걸 알겠음에도 너무 어렵게 느껴졌다. 반복. 반복으로 해결하는 수밖에.!!