From 75c4a55989f994d6b227e560d4a3e8ba86657d44 Mon Sep 17 00:00:00 2001 From: EllieKim Date: Sat, 5 Feb 2022 13:02:54 +0900 Subject: [PATCH] week2_assignment add week2_assignment --- week1_yulim/week2_assignment.ipynb | 465 +++++++++++++++++++++++++++++ 1 file changed, 465 insertions(+) create mode 100644 week1_yulim/week2_assignment.ipynb diff --git a/week1_yulim/week2_assignment.ipynb b/week1_yulim/week2_assignment.ipynb new file mode 100644 index 0000000..8d656e1 --- /dev/null +++ b/week1_yulim/week2_assignment.ipynb @@ -0,0 +1,465 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "44cc64a1", + "metadata": {}, + "source": [ + "### <미션 1>\n", + "* 네이버 영화에서 랭킹 상위 50위의 영화 제목 수집" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a8b8ef70", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 1위: 해적: 도깨비 깃발\n", + " 2위: 킹메이커\n", + " 3위: 스파이더맨: 노 웨이 홈\n", + " 4위: 경관의 피\n", + " 5위: 특송\n", + " 6위: 씽2게더\n", + " 7위: 하우스 오브 구찌\n", + " 8위: 나일 강의 죽음\n", + " 9위: 어나더 라운드\n", + "10위: 극장판 안녕 자두야: 제주도의 비밀\n", + "11위: 355\n", + "12위: 드라이브 마이 카\n", + "13위: 듄\n", + "14위: 레지던트 이블: 라쿤시티\n", + "15위: 킹스맨: 퍼스트 에이전트\n", + "16위: 언차티드\n", + "17위: 짬뽕비권\n", + "18위: 수퍼모델\n", + "19위: 강릉\n", + "20위: 장민호 드라마 최종회\n", + "21위: 모가디슈\n", + "22위: 인질\n", + "23위: 미싱타는 여자들\n", + "24위: 나이트메어 앨리\n", + "25위: 인어가 잠든 집\n", + "26위: 싱크홀\n", + "27위: 효자\n", + "28위: 트로트는 인생이다\n", + "29위: 동네사람들\n", + "30위: 세자매\n", + "31위: 아이스 로드\n", + "32위: 고스트버스터즈\n", + "33위: 창극 변강쇠 점 찍고 옹녀\n", + "34위: 코다\n", + "35위: 킬러의 보디가드 2: 킬러의 와이프\n", + "36위: 이상존재\n", + "37위: 프랑스\n", + "38위: 미션 파서블\n", + "39위: 삼진그룹 영어토익반\n", + "40위: 단'ㅅ 패밀리 남바완\n", + "41위: 캐시트럭\n", + "42위: 담보\n", + "43위: 블랙머니\n", + "44위: 사자\n", + "45위: 인민을 위해 복무하라\n", + "46위: 두번할까요\n", + "47위: 나의 촛불\n", + "48위: 만년이 지나도 변하지 않는 게 있어\n", + "49위: 더 배트맨\n", + "50위: 엔드게임: 나는 킬러다\n" + ] + } + ], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "\n", + "#get\n", + "URL = f\"https://movie.naver.com/movie/sdb/rank/rmovie.naver\"\n", + "\n", + "headers={\n", + " 'referer': 'https://movie.naver.com/',\n", + " 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'\n", + "}\n", + "\n", + "req = requests.get(URL,headers)\n", + "soup = BeautifulSoup(req.text, 'html.parser')\n", + "\n", + "movies = soup.select('table>tbody>tr>td>div>a')\n", + "\n", + "i = 1\n", + "for movie_name in movies:\n", + " print(f'{i:2d}위: ',movie_name.get_text())\n", + " i=i+1" + ] + }, + { + "cell_type": "markdown", + "id": "45ad2825", + "metadata": {}, + "source": [ + "### <미션 2> \n", + "* 수집한 네이버 영화에서 장르(개요), 개봉 일자, 감독 수집" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "1c5f1628", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 1위: 해적: 도깨비 깃발\n", + " 모험, 액션, 코미디 | 2022.01.26 개봉 | 김정훈\n", + "\n", + "\n", + " 2위: 킹메이커\n", + " 드라마 | 2022.01.26 개봉 | 변성현\n", + "\n", + "\n", + " 3위: 경관의 피\n", + " 범죄, 드라마 | 2022.01.05 개봉 | 이규만\n", + "\n", + "\n", + " 4위: 스파이더맨: 노 웨이 홈\n", + " 액션, 모험, SF | 2021.12.15 개봉 | 존 왓츠\n", + "\n", + "\n", + " 5위: 특송\n", + " 범죄, 액션 | 2022.01.12 개봉 | 박대민\n", + "\n", + "\n", + " 6위: 씽2게더\n", + " 애니메이션 | 2022.01.05 개봉 | 가스 제닝스\n", + "\n", + "\n", + " 7위: 하우스 오브 구찌\n", + " 스릴러, 드라마, 범죄 | 2022.01.12 개봉 | 리들리 스콧\n", + "\n", + "\n", + " 8위: 어나더 라운드\n", + " 드라마 | 2022.01.19 개봉 | 토마스 빈터베르그\n", + "\n", + "\n", + " 9위: 극장판 안녕 자두야: 제주도의 비밀\n", + " 애니메이션 | 2022.01.27 개봉 | 손석우\n", + "\n", + "\n", + "10위: 나일 강의 죽음\n", + " 범죄, 드라마, 미스터리 | 2022.02.09 개봉 | 케네스 브래너\n", + "\n", + "\n", + "11위: 드라이브 마이 카\n", + " 드라마 | 2021.12.23 개봉 | 하마구치 류스케\n", + "\n", + "\n", + "12위: 레지던트 이블: 라쿤시티\n", + " 액션, 공포 | 2022.01.19 개봉 | 요하네스 로버츠\n", + "\n", + "\n", + "13위: 355\n", + " 액션, 스릴러 | 2022.02.09 개봉 | 사이먼 킨버그\n", + "\n", + "\n", + "14위: 짬뽕비권\n", + " 액션, 코미디 | 2022.02.02 개봉 | 박동기\n", + "\n", + "\n", + "15위: 듄\n", + " 모험, 드라마, SF | 2022.02.09 재개봉, 2021.10.20 개봉 | 드니 빌뇌브\n", + "\n", + "\n", + "16위: 킹스맨: 퍼스트 에이전트\n", + " 액션 | 2021.12.22 개봉 | 매튜 본\n", + "\n", + "\n", + "17위: 언차티드\n", + " 액션, 모험 | 2022.02.16 개봉 | 루벤 플레셔\n", + "\n", + "\n", + "18위: 프랑스\n", + " 드라마 | 2022.01.13 개봉 | 브루노 뒤몽\n", + "\n", + "\n", + "19위: 강릉\n", + " 범죄, 액션 | 2021.11.10 개봉 | 윤영빈\n", + "\n", + "\n", + "20위: 수퍼모델\n", + " 공포, 스릴러 | 96분 | 유영선\n", + "\n", + "\n", + "21위: 장민호 드라마 최종회\n", + " 공연실황 | 2022.01.24 개봉 | 장민호\n", + "\n", + "\n", + "22위: 모가디슈\n", + " 액션, 드라마 | 2021.07.28 개봉 | 류승완\n", + "\n", + "\n", + "23위: 인질\n", + " 액션, 스릴러 | 2021.08.18 개봉 | 필감성\n", + "\n", + "\n", + "24위: 원 세컨드\n", + " 드라마 | 2022.01.27 개봉 | 장이머우\n", + "\n", + "\n", + "25위: 싱크홀\n", + " 드라마 | 2021.08.11 개봉 | 김지훈\n", + "\n", + "\n", + "26위: 동네사람들\n", + " 액션, 스릴러 | 2018.11.07 개봉 | 임진순\n", + "\n", + "\n", + "27위: 인어가 잠든 집\n", + " 드라마 | 2022.01.28 개봉 | 츠츠미 유키히코\n", + "\n", + "\n", + "28위: 세자매\n", + " 드라마 | 2021.01.27 개봉 | 이승원\n", + "\n", + "\n", + "29위: 아이스 로드\n", + " 스릴러 | 2021.07.21 개봉 | 조나단 헨슬레이\n", + "\n", + "\n", + "30위: 고스트버스터즈\n", + " 액션, 코미디, SF | 2016.08.25 개봉 | 폴 페이그\n", + "\n", + "\n", + "31위: 창극 변강쇠 점 찍고 옹녀\n", + " 공연실황 | 2022.02.03 개봉 | 고선웅\n", + "\n", + "\n", + "32위: 미싱타는 여자들\n", + " 다큐멘터리 | 2022.01.20 개봉 | 이혁래\n", + "\n", + "\n", + "33위: 나이트메어 앨리\n", + " 드라마, 미스터리, 스릴러 | 2022.02 개봉 | 기예르모 델 토로\n", + "\n", + "\n", + "34위: 효자\n", + " 코미디, 공포 | 2022.01.27 개봉 | 이훈국\n", + "\n", + "\n", + "35위: 코다\n", + " 드라마 | 2021.08.31 개봉 | 션 헤이더\n", + "\n", + "\n", + "36위: 킬러의 보디가드 2: 킬러의 와이프\n", + " 액션, 코미디, 범죄 | 2021.08.04 개봉 | 패트릭 휴즈\n", + "\n", + "\n", + "37위: 이상존재\n", + " 공포 | 2021.12.09 개봉 | 차진우\n", + "\n", + "\n", + "38위: 미션 파서블\n", + " 코미디, 액션 | 2021.02.17 개봉 | 김형주\n", + "\n", + "\n", + "39위: 인민을 위해 복무하라\n", + " 멜로/로맨스, 드라마 | 2022.02.23 개봉 | 장철수\n", + "\n", + "\n", + "40위: 삼진그룹 영어토익반\n", + " 드라마 | 2020.10.21 개봉 | 이종필\n", + "\n", + "\n", + "41위: 단'ㅅ 패밀리 남바완\n", + " 액션 | 99분 | 박한준\n", + "\n", + "\n", + "42위: 캐시트럭\n", + " 액션 | 2021.06.09 개봉 | 가이 리치\n", + "\n", + "\n", + "43위: 담보\n", + " 드라마 | 2020.09.29 개봉 | 강대규\n", + "\n", + "\n", + "44위: 블랙머니\n", + " 범죄, 드라마 | 2019.11.13 개봉 | 정지영\n", + "\n", + "\n", + "45위: 사자\n", + " 미스터리, 액션, 판타지, 공포 | 2019.07.31 개봉 | 김주환\n", + "\n", + "\n", + "46위: 두번할까요\n", + " 코미디, 멜로/로맨스 | 2019.10.17 개봉 | 박용집\n", + "\n", + "\n", + "47위: 엔드게임: 나는 킬러다\n", + " 드라마, 범죄, 코미디 | 2022.01.20 개봉 | 요효지\n", + "\n", + "\n", + "48위: 포르노그래퍼\n", + " 코미디, 드라마 | 2016.08.18 개봉 | 이레나 파블라스코바\n", + "\n", + "\n", + "49위: 이터널스\n", + " 액션, 드라마, 판타지 | 2021.11.03 개봉 | 클로이 자오\n", + "\n", + "\n" + ] + } + ], + "source": [ + "HOME_URL = f\"https://movie.naver.com\"\n", + "\n", + "movie_urls = soup.find(\"tbody\")\n", + "movie_url_lst = []\n", + "i=0\n", + "rechar='\\n\\r\\t'\n", + "\n", + "for url in movie_urls.find_all(\"tr\"):\n", + " movie_url = url.find('td', {'class':'title'})\n", + " if movie_url == None:\n", + " continue\n", + " movie_url_lst.append(HOME_URL + movie_url.find(\"a\")['href'])\n", + "\n", + "for MOVIE_INFO_URL in movie_url_lst:\n", + " print(f'{i+1:2d}위: ',movies[i].get_text())\n", + " i=i+1\n", + " headers_tmp={\n", + " 'referer': 'https://movie.naver.com/movie/sdb/rank/rmovie.naver',\n", + " 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'\n", + " }\n", + " req_tmp = requests.get(MOVIE_INFO_URL,headers_tmp)\n", + " soup_tmp = BeautifulSoup(req_tmp.text, 'html.parser')\n", + " movie_info_data = soup_tmp.find('dl', {'class':'info_spec'})\n", + " \n", + " movie_infos = movie_info_data.select('dd>p>span')\n", + " movie_info_lst = []\n", + " for movie_info in movie_infos:\n", + " movie_info_lst.append(movie_info.get_text().replace('\\t','').replace('\\r','').replace('\\n','').strip())\n", + " \n", + " movie_director_infos = movie_info_data.select('dd>p>a')\n", + " print(f\" {movie_info_lst[0]} | {movie_info_lst[-1]} | {movie_director_infos[0].get_text()}\")\n", + " \n", + " print('\\n')" + ] + }, + { + "cell_type": "markdown", + "id": "dba8f720", + "metadata": {}, + "source": [ + "### <미션3>\n", + "* 한국산업기술대학교 eclass 의 교육현황 탭에서 1페이지의 과목/교수/청강 가능 여부를 크롤링해서 정리후 출력해보세요." + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "5a60d6e5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "과목: 2차전지기술(01) \n", + "교수: 류지헌\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 3D프린팅(01) \n", + "교수: 최근식\n", + "청강 가능 여부: N\n", + "\n", + "과목: 현장실습2(01) \n", + "교수: 이희철\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 미적분학2(01) \n", + "교수: 금교은\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 대학물리학2(01) \n", + "교수: 류영선\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 공업수학1(01) \n", + "교수: 강우석\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 열유체역학(01) \n", + "교수: 김완수\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 현장프로젝트교과(파이썬을이용한데이터수집및스마트공장사례조사)(01) \n", + "교수: 허재석\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 기초미디어프로그래밍(01) \n", + "교수: 김한종\n", + "청강 가능 여부: Y\n", + "\n", + "과목: 현장프로젝트교과(유니티게임엔진을활용한메타버스형식의교(01) \n", + "교수: 이용희\n", + "청강 가능 여부: Y\n", + "\n" + ] + } + ], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "\n", + "url = \"http://eclass.kpu.ac.kr/ilos/st/main/course_ing_list.acl\"\n", + "headers={\n", + " 'referer': 'http://eclass.kpu.ac.kr/ilos/main/main_form.acl',\n", + " 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'\n", + "}\n", + "req = requests.get(url, headers=headers)\n", + "soup = BeautifulSoup(req.text, \"html.parser\")\n", + "\n", + "info_data = soup.select('#content_text > table > tbody > tr ')\n", + "info_lst = []\n", + "\n", + "for info in info_data:\n", + " info_lst.append(info.get_text().strip())\n", + " info_lst[-1] = info_lst[-1].split('\\n')\n", + " print(f\"과목: {info_lst[-1][2][:-3]} \\n교수: {info_lst[-1][2][-3:]}\\n청강 가능 여부: {info_lst[-1][-1]}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "82d1e3e4", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}