python
-
파이썬 실천 기술 #01 - PEP20, 제어흐름(if, for, while, Exception)코딩 연습/코딩배우기 2021. 5. 18. 11:09
효율적 개발로 이끄는 파이썬 실천 기술 - PEP20, 제어흐름(if, for, while, Exception) (참고용으로 사용할 부분만 간략하게 정리) ▼ 파이썬 설계 가이드라인 - PEP20: The Zen of Python import this [결과] The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special ca..
-
파이썬 웹 크롤링(Web Crawling) 알아보기 #10코딩 연습/코딩배우기 2020. 11. 14. 23:51
■ 파이썬 크롤링 실습 - 네이버 웹툰 requests, BeautifulSoup로 네이버 웹툰(m.comic.naver.com) 목록 크롤링 후 urllib, os, datetime 모듈로 디렉토리와 파일 이름을 다시 만들어서 이미지 저장해보기 다운로드 받을 네이버 웹툰 클릭 후, 전체 url(get_url)에서 파라미터 부분을 각각 분리하여 url과 params dict로 만든다. requests.get()과 soup.select()로 a_tag_list(리스트)를 생성한다. * soup.select()의 type은 리스트임 * tag.select()에서 detail.nhn은 점(.) 이스케이프 처리 완전한 url을 위해 urljoin()으로 url과 를 합친다 제목을 추출하기 위해 각 a_tag에서..
-
파이썬 크롤링(Crawling) - 셀레니움(Selenium) 연습 #3코딩 연습/코딩배우기 2020. 11. 12. 21:36
■ CGV 영화 리뷰 스크래핑 from selenium import webdriver import time chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') def get_movie_reviews(url, page_num = 10): wd = webdriver.Chrome('C:/Temp/chromedriver.exe', options = chrome_options) wd.get(url) writer_list = [] review_list = [] date_list = [] movie_review = [] for page_no in range(1, page_num + 1): page_ul = wd.fin..
-
파이썬 리트스 순서 뒤집기 revers(), reversed() 함수, 그리고 리스트 묶기 zip() 함수코딩 연습/코딩배우기 2020. 11. 12. 18:50
■ 리트스 순서 뒤집기 revers(), reversed() 함수 list1 = ['사과', 3, '40', 'apple', '홍길동'] rlist1 = reversed(list1) ## 순서가 뒤집힌 리스트 이터레이터 객체 반환 print(rlist1) # print(list(rlist1)) # ['홍길동', 'apple', '40', 3, '사과'] print(list1) ## 리스트 원본 수정 안됨 # ['사과', 3, '40', 'apple', '홍길동'] list1.reverse() ## 리스트 원본 수정됨 print(list1) # ['홍길동', 'apple', '40', 3, '사과'] ■ 리스트 묶어서 활용하는 zip() 함수 names = ['김홍두', '조용해', '나해커'] ages ..
-
파이썬의 삼항 연산자(Ternary Operator)코딩 연습/코딩배우기 2020. 11. 11. 21:42
■ 파이썬의 삼항 연산자는 다른 언어와 달리 "[condition] ? [true] : [false]" 식을 지원한지 않고 if문을 통해 다음과 같이 지원한다. [true] if [condition] else [false] car_speed = 140 car = '벌점' if car_speed > 120 else '안전운행' print(car) # 벌점 def lt_gt(x, y): return x if x >= y else y print(lt_gt(10, 11)) # 11 odd = [] even = [] for i in range(1, 11): odd.append(i) if i % 2 != 0 else even.append(i) print(odd) # [1, 3, 5, 7, 9] print(even)..
-
파이썬 크롤링(Crawling) - 셀레니움(Selenium) 연습 #2코딩 연습/코딩배우기 2020. 11. 10. 20:52
■ 네이버 웹툰(comic.naver.com) 제목(title) 스크래핑 from selenium import webdriver import time chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') wd = webdriver.Chrome('C:/Temp/chromedriver.exe', options = chrome_options) url = 'https://comic.naver.com/index.nhn' wd.get(url) ## 메인페이지의 웹툰 제목들 for title in wd.find_elements_by_class_name('title'): print(title.text) [실행 결과] 컷툰..
-
파이썬의 일급 객체 함수 개념을 이용한 클로저(closure) 연습코딩 연습/코딩배우기 2020. 11. 10. 17:02
파이썬 클로저(closure) ■ 클로저는 스코프에 묶인 변수를 바인딩 하기 위한 기술로, 파이썬에서 __closure__는 cell(셀)로 이루어진 튜플이며, cell 객체는 __closure__의 free variables(변수)를 저장하기 위해 사용되고, 각 cell에는 저장된 값을 확인할 수 있는 cell_contents라는 변수(속성)가 있다. def closure_ex1(): x = 1 def inner(): y = 2 return x + y return inner r1 = closure_ex1() print(r1, type(r1)) ## 리턴값은 inner 함수의 참조값 # print(hasattr(r1, '__closure__')) ## r1에 속성 __closure__ 있는지 # True..
-
파이썬 크롤링(Crawling) - 셀레니움(Selenium) 연습 #1코딩 연습/코딩배우기 2020. 11. 9. 22:46
■ 셀레니움(Selenium)이란? o 셀레니움(Selenium)은 웹사이트 테스트 목적으로 나옴 o 웹브라우저 컨트롤, 동작 제어, 자동화 등 가능(사람이 접속하는 것처럼) o pip install selenium (selenium 설치) o 웹드라이버 설치 --> 셀레니움이 웹드라이버 제어 --> 웹드라이버를 통해 브라우저 제어 (Webdriver를 가지고 자동으로 크롬 Open, Control) o 셀레니움 크롬드라이버 다운로드 - 사이트 : https://sites.google.com/a/chromium.org/chromedriver/downloads - 크롬드라이버를 크롬 버전에 맞춰서 받아야 한다. - 크롬 버전 확인은 크롬 주소창에 "Chrome://version" 입력하여 확인한다. - 운..