selenium

ยทDBMS
What is the XPath? X Path : ๋”ฐ์•… ๋ด๋„ X + Path ํ•ฉ์ณ์ง„ ํ•ฉ์„ฑ์–ด ๊ฐ™๋‹ค. X: XML ์ธ๋ฐ, XML์€ ๋ฌธ์„œ ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, XPath๋Š” XML ๋ฌธ์„œ์˜ ์†์„ฑ์— ๊ฒฝ๋กœ์‹์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ์–ธ์–ด์ด๋‹ค. * beautifulsoup์—์„œ๋Š” ์ง€์›ํ•˜์ง„ ์•Š๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์ด๊ฑธ ๋Œ€์ฒด ์™œ? ๋ฐ”๋กœ, scrapy ๋•Œ๋ฌธ์— ์•Œ์•„๋‘ฌ์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐฑ์žฅํžˆ ๊ฐ„๋‹จํ•ด๋ฒ„์ž„ ๊ตณ๊ตณ =_=b 1. ๊ธฐ์ดˆ ๋ฌธ๋ฒ• / : ์ ˆ๋Œ€๊ฒฝ๋กœ // : ๋ฌธ์„œ ๋‚ด ๊ฒ€์ƒ‰ //@href : href ์†์„ฑ์ด ์žˆ๋Š” ๋ชจ๋“  ํƒœ๊ทธ ์„ ํƒ //a[@href='abcf'] : a ํƒœ๊ทธ์˜ href ์†์„ฑ์˜ abcf ์†์„ฑ๊ฐ’์„ ๊ฐ€์ง„ ๋ชจ๋“  ํƒœ๊ทธ ์„ ํƒ (//a)[3] : ์ „์ฒด ๋ฌธ์„œ์˜ 3๋ฒˆ์งธ ๋งํฌ ์„ ํƒ (//table)[last()] :์ „์ฒด ํ…Œ์ด๋ธ” ๋ฌธ์„œ์˜ ๋งˆ..
ยทDBMS
1. ๋™์  ? ์ •์ ? ์‰ฝ๊ฒŒ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ์ •์  ํŽ˜์ด์ง€ = html ๋™์  ํŽ˜์ด์ง€ = ajax ๋! ํ•˜๊ณ  ์ดํ•ด๊ฐ€ ๋œ๋‹ค๋ฉด ์ข‹๊ฒ ์ง€๋งŒ, ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์„ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋ง๋ถ™์ด์ž๋ฉด, html๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ํ™”๋ฉด์„ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ํ™”๋ฉด์ด ๊นœ๋นก! ๊ฑฐ๋ฆฐ๋‹ค. ๊ทผ๋ฐ html ์•ˆ์˜ ajax๋กœ ๊ตฌ์„ฑ๋œ ๋™์  ํŽ˜์ด์ง€(์˜ˆ๋ฅผ ๋“ค์–ด ๋Œ“๊ธ€์ฐฝ)๋Š” ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•œ๋‹คํ•ด์„œ ๊ทธ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๊นœ๋นก! ๊ฑฐ๋ฆฌ์ง„ ์•Š๋Š”๋‹ค. ์ด ๊นœ๋นก! ๊ฑฐ๋ฆด๋•Œ ๋จผ๊ฐ€ ์š”์ฒญ์ด ์™”๋‹ค ๊ฐ”๋‹ค ํ•˜๋Š”๋ฐ, ์ด ๊ณผ์ •์ด ์ƒ~๋‹นํžˆ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ํ’ˆ์ด ๋งŽ๋‹ค. ๊ทธ๋ž˜์„œ ๋Œ€๋ถ€๋ถ„์˜ ํŽ˜์ด์ง€๋“ค์€ ajax๋กœ ๊ตฌ์„ฑ๋œ ๋ถ€๋ถ„์„ ํฌํ•จํ•˜๊ณ  ์žˆ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ํฌ๋กค๋ง ํ•  ๋ถ€๋ถ„์ด ์—ฌ๊ธฐ์— ํ•ด๋‹น๋  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทผ๋ฐ, ๊ธฐ์กด ํฌ์ŠคํŒ…ํ•œ ๋‚ด์šฉ๋Œ€๋กœ ๊ธฐ์ดˆ selenium ํ™œ์šฉ๋ฒ•๋งŒ์„ ์‚ฌ์šฉํ•ด ํฌ๋กค๋ง์„ ์ง„ํ–‰ํ•˜๋ฉด, ์ด ๋™์  ํŽ˜์ด์ง€๋Š” ๊ธ์–ด์˜ฌ ์ˆ˜ ์—†๋‹ค. ์™œ๋ƒ..
ยทDBMS
What is the Headless Chrome?? - ๋จธ๋ฆฌ ์—†๋Š” ํฌ๋กฌ์ด ๋Œ€์ฒด ๋ฌด์—‡? ใ…‹ใ…‹ ๊ทธ๋ƒฅ ์ฐฝ์ด ์—†๋Š” ํฌ๋กค๋ง์ด๋‹ค. ๊ตณ์ด ํ™”๋ฉด์„ ๋„์šฐ์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ธ์–ด์™€์„œ ์ €์žฅ๋งŒ ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ „์—๋Š” PhantomJS๋ผ๋Š” ๊ฒƒ์„ ์ผ์ง€๋งŒ ์š”์ฆ˜์—๋Š” ๊ฐ„ํŽธํ•˜๊ฒŒ selenium webdriver์— ์˜ต์…˜๊ฐ’์„ ์ค˜์„œ ๊ฐ„ํŽธํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. chrome_options = webdriver.ChromeOptions() #์ฐฝ ๋„์šฐ์ง€ ์•Š๋Š” ์˜ต์…˜ chrome_options.add_argument('headless') chrome_options.add_argument('window-size=1920x1080') #gpu ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์˜ต์…˜ chrome_options.add_argument('disable-gpu') # ์„œ๋ฒ„์— ์š”์ฒญ..
ยทDBMS
์šฐ์„  selenium์ด ๋ญ˜ํ•˜๋Š” ๊ฑด์ง€ ์ผ๋‹จ ์•Œ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. selenium์€ ์ž๋™ํ™”ํ•˜๋Š” ํ”„๋ ˆ์ž„ ์›์ด๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์ž๋™ํ™”๋งŒ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ˆ˜๋™์ ์œผ๋กœ html์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ด๊ฐ€๋ฉด์„œ ํƒœ๊ทธ์˜ ์†์„ฑ๊ฐ’๋“ค์„ ์ฐพ์•„์„œ ์ด๊ฑธ ๊ฐ€์ ธ์˜ค๋Š” ๋จธ ๊ทธ๋Ÿฐ ๊ท€์ฐฎ์€ ์ผ๋“ค์„ ๋Œ€์‹ ํ•ด์ฃผ๋Š” ์ผ๋“ค์„ ๋‹ด๋‹นํ•œ๋‹ค. ์™œ ๊ตณ์ด? ์ด๋ ‡๊ฒŒ? ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ์‚ฌ์‹ค ํฌ๋กค๋ง์ด ๋”ฑํžˆ ํ•ฉ๋ฒ•์ ์ธ ๋Š๋‚Œ์€ ์•„๋‹ ๊ฒƒ์ด๋‹ค. ๋‚ด๊ฐ€ ์–ด๋–ค ํŽ˜์ด์ง€์˜ ์ฃผ์ธ์ธ๋ฐ ๋ˆ„๊ฐ€ ๋‚ด ํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ง‰ ๊ธ์–ด๊ฐ€๋ฉด ๊ธฐ๋ถ„์ด ์ฉ ์ข‹์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์ดํŠธ๋“ค์€ ์ด๋Ÿฐ ๊ฑธ ๋ง‰์•„ ๋†“์•˜๋Š”๋ฐ, ์…€๋ ˆ๋‹ˆ์›€์œผ๋กœ ํ•˜์—ฌ๊ธˆ ๋งˆ์น˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธ์–ด์˜ค๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ๊ฐ™์€ ์•„์ดํ”ผ๋กœ ๊ณ„์† ์ ‘๊ทผํ•˜๋ฉด ์ด๊ฒƒ๋„ ๋ง‰ํžˆ๊ธด ํ•œ๋‹ค ใ…Žใ…Žใ…Žใ…Ž "๋‹น์‹ ์€ ๋กœ๋ด‡์ž…๋‹ˆ๊นŒ?" ์š”๋Ÿฐ๊ฑฐ๋„ ๊ทธ์ค‘์— ..
ยทDBMS
๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ์•„์ฅฌ ์ดˆ์„! ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘! ํฌ๋กค๋ง์„ ์‹œ์ž‘ํ•ด๋ด์•ผ๊ฒ ๋‹ค VScode๋กœ ์ฝ”๋“œ ์ž…๋ ฅํ•ด๊ฐ€๋ฉด์„œ ๋„์šฐ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ, ์‚ฌ์‹ค jupyter notebook์ด ๊ฐ„ํŽธํ•˜๋ฏ€๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ”„๋กฌํ”„ํŠธ์— ์‚ฌ์šฉํ•  ๊ฐ€์ƒํ™˜๊ฒฝ์„ activate ํ•ด์ฃผ๊ณ  1. Selenium ์„ค์น˜ 2. OS ํ™˜๊ฒฝ, chrome ๋ฒ„์ „์— ๋งž๋Š” webdriver ๋‹ค์šด๋กœ๋“œ https://sites.google.com/a/chromium.org/chromedriver/ ChromeDriver - WebDriver for Chrome WebDriver for Chrome sites.google.com ํฌ๋กฌ ๋ฒ„์ „ ํ™•์ธ์€ ํฌ๋กฌ ํ™”๋ฉด ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ ๋”๋ณด๊ธฐ(์  ์„ธ๊ฐœ) > ๋„์›€๋ง > ํฌ๋กฌ ์ •๋ณด ์—์„œ ํ™•์ธ๊ฐ€๋Šฅ ํ™•์ธ ํ›„ os ์— ๋งž๊ฒŒ ๋‹ค์šด ๋ฐ›๋Š”๋ฐ, ๋‚ด ..
ํ‚จ์ง€ (Kinzie)
'selenium' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก