โก ํฌ๋กค๋ง์ ์์
(1) ์ํ๋ ํ์ด์ง์ HTML ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธฐ
(2) HTML์ ๋ถ์(ํ์ฑ) ๊ฐ๋ฅํ ํํ๋ก ๊ฐ๊ณต
(3) ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ
In:
import urllib.request # ์นํ์ด์ง ์ ์
req = urllib.request.Request('https://naver.com') # ์น์๋ฒ๋ฅผ Requestํ๊ธฐ ์ํ ๊ฐ์ฒด ์์ฑ
res = urllib.request.urlopen(req) # Reqeustํ ๊ฐ์ฒด์ ๋ํ urlopen ํจ์์ ์ํ๊ฒฐ๊ณผ๋ฅผ ๋ณ์์ ์ ์ฅ
html_byte = res.read() # read ํจ์๋ฅผ ํตํด ๋ฐ์ดํธ ํํ๋ก ์ ์ฅ
html_str = html_byte.decode('UTF8') # ๋ฌธ์์ด๋ก ์ฌ์ฉํ๊ธฐ ์ํด UTF-8๋ก ๋์ฝ๋ฉ ์ํ
html_splt = html_str.split('\n') # html_str ๋ณ์ ๋ด์ฉ์ ์ค๋ฐ๊ฟ์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌ
cnt = 1
for l in html_splt: # ๋ถ๋ฆฌ๋ ๋ด์ฉ์ ์ค ๋จ์๋ก ์ถ๋ ฅ
if cnt <= 10:
print(l)
print('\n')
cnt += 1
Out:
<!doctype html> <html lang="ko" data-dark="false"> <head> <meta charset="utf-8"> <title>NAVER</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=1190"> <meta name="apple-mobile-web-app-title" content="NAVER"/> <meta name="robots" content="index,nofollow"/> <meta name="description" content="๋ค์ด๋ฒ ๋ฉ์ธ์์ ๋ค์ํ ์ ๋ณด์ ์ ์ฉํ ์ปจํ
์ธ ๋ฅผ ๋ง๋ ๋ณด์ธ์"/> <meta property="og:title" content="๋ค์ด๋ฒ"> <meta property="og:url" content="https://www.naver.com/"> <meta property="og:image" content="https://s.pstatic.net/static/www/mobile/edit/2016/0705/mobile_212852414260.png"> <meta property="og:description" content="๋ค์ด๋ฒ ๋ฉ์ธ์์ ๋ค์ํ ์ ๋ณด์ ์ ์ฉํ ์ปจํ
์ธ ๋ฅผ ๋ง๋ ๋ณด์ธ์"/> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content=""> <meta name="twitter:url" content="https://www.naver.com/"> <meta name="twitter:image" content="https://s.pstatic.net/static/www/mobile/edit/2016/0705/mobile_212852414260.png"> <meta name="twitter:description" content="๋ค์ด๋ฒ ๋ฉ์ธ์์ ๋ค์ํ ์ ๋ณด์ ์ ์ฉํ ์ปจํ
์ธ ๋ฅผ ๋ง๋ ๋ณด์ธ์"/> <link rel="stylesheet" href="https://pm.pstatic.net/dist/css/nmain.20200917.css"> <link rel="stylesheet" href="https://ssl.pstatic.net/sstatic/search/pc/css/api_atcmp_200709.css"> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?1"/> <script>document.domain="naver.com",window.nmain=window.nmain||{},window.nmain.supportFlicking=!1;var nsc="navertop.v4",ua=navigator.userAgent;window.nmain.isIE=navigator.appName&&navigator.appName.indexOf("Explorer")>0&&ua.toLocaleLowerCase().indexOf("msie 10.0")<0,document.getElementsByTagName("html")[0].setAttribute("data-useragent",ua),window.nmain.isIE&&(Object.create=function(n){function a(){}return a.prototype=n,new a})</script> <script>var darkmode= false;window.naver_corp_da=window.naver_corp_da||{main:{}},window.naver_corp_da.main=window.naver_corp_da.main||{},window.naver_corp_da.main.darkmode=darkmode</script> <script> window.nmain.gv = { isLogin: false,
useId: null, daInfo: {"ANIMAL":{"menu":"ANIMAL","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000161","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_animal_1","tb":"ANIMAL_1","unit":"SU10567","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000162","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_animal_2","tb":"ANIMAL_1","unit":"SU10568","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"BEAUTY":{"menu":"BEAUTY","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000163","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_beauty_1","tb":"BEAUTY_1","unit":"SU10595","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000164","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_beauty_2","tb":"BEAUTY_1","unit":"SU10596","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"BUSINESS":{"menu":"BUSINESS","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000165","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_business_1","tb":"BUSINESS_1","unit":"SU10577","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000166","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_business_2","tb":"BUSINESS_1","unit":"SU10578","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"CARGAME":{"menu":"CARGAME","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000167","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_cargame_1","tb":"CARGAME_1","unit":"SU10587","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000168","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_cargame_2","tb":"CARGAME_1","unit":"SU10588","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"CHINA":{"menu":"CHINA","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000169","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_china_1","tb":"CHINA_1","unit":"SU10591","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000170","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_china_2","tb":"CHINA_1","unit":"SU10592","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"DESIGN":{"menu":"DESIGN","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000171","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_design_1","tb":"DESIGN_1","unit":"SU10569","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000172","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_design_2","tb":"DESIGN_1","unit":"SU10570","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"FARM":{"menu":"FARM","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000173","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_farm_1","tb":"FARM_1","unit":"SU10561","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000174","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_farm_2","tb":"FARM_1","unit":"SU10562","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"FINANCE":{"menu":"FINANCE","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000175","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_finance_1","tb":"FINANCE_1","unit":"SU10563","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000176","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_finance_2","tb":"FINANCE_1","unit":"SU10564","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"ITTECH":{"menu":"ITTECH","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000177","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_ittech_1","tb":"ITTECH_1","unit":"SU10593","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000178","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_ittech_2","tb":"ITTECH_1","unit":"SU10594","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"JOB":{"menu":"JOB","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000179","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_job_1","tb":"JOB_1","unit":"SU10589","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000180","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_job_2","tb":"JOB_1","unit":"SU10590","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"LAW":{"menu":"LAW","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000181","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_law_1","tb":"LAW_1","unit":"SU10573","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000182","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_law_2","tb":"LAW_1","unit":"SU10574","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"LIVING":{"menu":"LIVING","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000183","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_living_1","tb":"LIVING_1","unit":"SU10597","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000184","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_living_2","tb":"LIVING_1","unit":"SU10606","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"LIVINGHOME":{"menu":"LIVINGHOME","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000185","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_livinghome_1","tb":"LIVINGHOME_1","unit":"SU10571","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000186","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_livinghome_2","tb":"LIVINGHOME_1","unit":"SU10572","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"MOMKIDS":{"menu":"MOMKIDS","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000187","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_momkids_1","tb":"MOMKIDS_1","unit":"SU10575","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000188","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_momkids_2","tb":"MOMKIDS_1","unit":"SU10576","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"MOVIE":{"menu":"MOVIE","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000189","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_movie_1","tb":"MOVIE_1","unit":"SU10585","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000190","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_movie_2","tb":"MOVIE_1","unit":"SU10586","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"SCHOOL":{"menu":"SCHOOL","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000191","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_school_1","tb":"SCHOOL_1","unit":"SU10579","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000192","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_school_2","tb":"SCHOOL_1","unit":"SU10580","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"SHOW":{"menu":"SHOW","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000193","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_show_1","tb":"SHOW_1","unit":"SU10565","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000194","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_show_2","tb":"SHOW_1","unit":"SU10566","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"TRAVEL":{"menu":"TRAVEL","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000195","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_travel_1","tb":"TRAVEL_1","unit":"SU10581","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000196","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_travel_2","tb":"TRAVEL_1","unit":"SU10582","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]},"WEDDING":{"menu":"WEDDING","childMenu":"","adType":"singleDom","multiDomAdUrl":"","multiDomUnit":"","infoList":[{"adposId":"1000197","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_wedding_1","tb":"WEDDING_1","unit":"SU10583","calp":"-"},"type":{"position":"abs","positionIndex":4,"subject":"contents"},"dom":null},{"adposId":"1000198","singleDomAdUrl":"https://nv.veta.naver.com/fxshow","param":{"da_dom_id":"p_main_wedding_2","tb":"WEDDING_1","unit":"SU10584","calp":"-"},"type":{"position":"abs","positionIndex":8,"subject":"contents"},"dom":null}]}},
svt: 20201010181134,
}; </script> <script> window.nmain.newsstand = {
rcode: '08320102',
newsCastSubsInfo: '',
newsStandSubsInfo: ''
};
window.etc = { };
โก Requests
- ์น์๋ฒ์ ์ ์ํ์ฌ HTML์ ๋ฐ์ ์ ์๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๊ธฐ์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณด๋ค ์ฌ์ฉ์ด ํธ๋ฆฌํ๊ณ , ์๋๊ฐ ๋น ๋ฆ
- ์๋์ฝ๋ค์ ๊ฒฝ์ฐ, ๋ด์ฅ๋์ด ์์
- pip install requests๋ฅผ ์ ๋ ฅํ์ฌ ์ค์น
In:
import requests
res = requests.get('https://www.naver.com') # ์์ urllib๋ฅผ ํตํด ์ํํ ์์
์ ํ ์ค๋ก ์ํ
print(res.status_code)
Out:
200
โท status_code ํจ์์ ์ถ๋ ฅ๋ ์ซ์์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ๋ค.
200: ์ ์
404: ์์ฒญํ URL์ด ์์
502: ์ดํ๋ฆฌ์ผ์ด์ ์๋ฌ
In:
print(res.headers['content-type'])
Out:
text/html; charset=UTF-8
โท UTF-8๋ก ์ด๋ฏธ ๋์ฝ๋ฉ๋์ด ์๋ ๊ฒ์ ์ ์ ์๋ค.
In:
print(res.text)
โท ์์ urllib๋ฅผ ํตํ ์ํ๊ฒฐ๊ณผ์ ๊ฐ์ ํํ๋ฅผ ์ป์ ์ ์๋ค.
โก BeautifulSoup
- HTML์ ๋ถ์ ๊ฐ๋ฅํ ํํ๋ก ๊ฐ๊ณต ๋ฐ ์ถ์ถํ ์ ์๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์ฌ์ฉ์ ํ์๋ฅผ ๋ฐ๋์ ์ง์
- ํ์์ ์๋ก๋ html, parser, lxml ๋ฑ์ด ์์
- pip install BeautifulSoup4๋ฅผ ์ ๋ ฅํ์ฌ ์ค์น
In:
from bs4 import BeautifulSoup
bs = BeautifulSoup(res.text, 'html.parser')
print(bs)
โท BeautifulSoup๋ฅผ ํ์ฉํ์ฌ ์์ ๊ฒฝ์ฐ์ ๊ฐ์ด ํด๋น URL์ ๋ด์ฉ์ ๋ถ๋ฌ์ฌ ์ ์๋ค.
In:
print(bs.select('a')[0]) # a ํ๊ทธ์ 0๋ฒ์งธ ์ธ๋ฑ์ค ๋ถ๋ฌ์ค๊ธฐ
Out:
<a href="#newsstand"><span>๋ด์ค์คํ ๋ ๋ฐ๋ก๊ฐ๊ธฐ</span></a>
โท select ํจ์๋ฅผ ์ด์ฉํ์ฌ ํ๊ทธ๊ฐ a์ธ ๊ฒ์ ๋ถ๋ฌ์ฌ ์ ์๋ค. ๋ค์์ ์ค์ HTML์ a ํ๊ทธ์ด๋ค.
In:
url = 'https://www.naver.com'
req = requests.get(url)
bs = BeautifulSoup(req.text, 'html.parser')
lst = bs.find_all('li' , {'class':'nav_item'}) # li ํ๊ทธ์ class๊ฐ "nav_item"์ธ ์์๋ฅผ ์ฐพ๊ธฐ
for l in lst:
print(l.find('a').text) # a ํ๊ทธ์ ์๋ ๊ธ์๋ง ๊ฐ์ ธ์ค๊ธฐ
Out:
๋ฉ์ผ
์นดํ
๋ธ๋ก๊ทธ
์ง์iN
์ผํ
Pay
TV
์ฌ์
๋ด์ค
์ฆ๊ถ
๋ถ๋์ฐ
์ง๋
์ํ
VIBE
์ฑ
์นํฐ
โท ์๋์ ๊ทธ๋ฆผ์์ ๋ณด๋ค์ํผ, li ํ๊ทธ์ ํด๋์ค๊ฐ "nav_item"์ด๋ฉฐ, a ํ๊ทธ์ ํฌํจ๋ ๋ด์ฉ์ ๋ถ๋ฌ์จ ๊ฒฐ๊ณผ์ด๋ค.
In:
url = 'https://www.daum.net'
req = requests.get(url)
bs = BeautifulSoup(req.text, 'html.parser')
lst_ul = bs.find_all('ul', {'class':'list_mainsvc'})
for u in lst_ul:
lst_li = u.find_all('li')
for l in lst_li:
print(l.find_all('span', {'class':'ir_wa'})[0].text)
Out:
์นดํ
๋ฉ์ผ
๋ด์ค
์ง๋
์ฆ๊ถ
์ผํ
์นด์นด์คTV
์นํฐ
๋ธ๋ก๊ทธ
๋ธ๋ฐ์น
์ฌ์
๊ฒ์
๊ฐ์ด๊ฐ์น
โท ์ด ๊ฒฝ์ฐ๋ span ํ๊ทธ์ ํด๋์ค๊ฐ "ir_wa"์ธ ๋ด์ฉ์ ๋ฝ์๋ด๊ธฐ ์ํด, ul ํ๊ทธ, li ํ๊ทธ, span ํ๊ทธ ์์ผ๋ก ๊ณ์ธต์ ์ผ๋ก ์ ๊ทผํ์๋ค.
โท ์๋์ ๊ทธ๋ฆผ์์ ํ๊ทธ์ ๊ณ์ธต์ ๊ตฌ์ฑ์ ํ์ธํ ์ ์๋ค.
'Programming > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Selenium๊ณผ BeautifulSoup๋ฅผ ํ์ฉํ ํฌ๋กค๋ง (1) | 2020.10.19 |
---|---|
ํด๋์ค(Class)์ ์ธ์ ๋ฐ ๋ฉ์๋(Method) (0) | 2020.07.26 |