๐ŸŒฑ → ๐ŸŒณ

๋ชจ๊ฐ์ฝ” ํŒŒ์ด์ฌ ํฌ๋กค๋ง 10์ผ์ฐจ ๋ณธ๋ฌธ

Server/Python

๋ชจ๊ฐ์ฝ” ํŒŒ์ด์ฌ ํฌ๋กค๋ง 10์ผ์ฐจ

thals0 2022. 4. 8. 15:54
728x90

#10. ๋™์  ํฌ๋กค๋ง โ‘ 

๐Ÿ“Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 'selenium'

selenium

: ๋™์ ํฌ๋กค๋ง์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์›น ๋“œ๋ผ์ด๋ฒ„(webdriver)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋ฅผ ์‹คํ˜„ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

์‚ฌ๋žŒ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ์‹ ๊ทธ๋Œ€๋กœ ํฌ๋กค๋งํ•˜๋Š” ๊ธฐ๊ณ„๋ฅผ ๋งŒ๋“ค์–ด ๋ƒ„

์ •์ ํฌ๋กค๋ง์— ๋น„ํ•ด ์†๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ,

๋งˆ์šฐ์Šค ํด๋ฆญ, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, ๋’ค๋กœ๊ฐ€๊ทธ ๋“ฑ์˜ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฌ๋กค๋ง์— ํ•œ๊ณ„๋Š” ๊ฑฐ์˜ ์—†๋‹ค.

 

โœ… Selenium ์„ค์น˜

 

ํ„ฐ๋ฏธ๋„ ํ˜น์€ ๋ช…๋ นํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ด์–ด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜

pip install selenium

 

๐Ÿ“Œwebdriver

selenium์˜ ์›น ๋“œ๋ผ์ด๋ฒ„๋Š” ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹จ์ˆœํ™” ๋ฐ ๊ฐ€ํ˜นํ™”ํ•ด์ฃผ๋Š” ํ‹€

์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋งค๊ฐœ์ฒด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ๋ฌด๋ฐฉ

 

webdriver-manager๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ํฌ๋กฌ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ฝ”๋“œ๋กœ ๋ฐ›์•„ ์˜ฌ ์ˆ˜ ์žˆ์Œ

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ„ฐ๋ฏธ๋„ ํ˜น์€ ๋ช…๋ นํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ด์–ด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜

pip install webdriver-manager

 

๐Ÿ“Œ ๋™์ ํฌ๋กค๋ง ๋ง›๋ณด๊ธฐ

1๏ธโƒฃ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ import

from selenium import webdriver 
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ „์ฒด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” [import ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ]๊ฐ€ ์•„๋‹Œ 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์›ํ•˜๋Š” ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋งŒ ๋ถˆ๋Ÿฌ์˜ด

from ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ import [ ์›ํ•˜๋Š” ๋ฉ”์†Œ๋“œ/ํด๋ž˜์Šค ]

 

โ€‹2๏ธโƒฃ ์›น ๋“œ๋ผ์ด๋ฒ„ ๋ฐ›์•„์˜ค๊ธฐ

chrome_driver = ChromeDriverManager().install()

 

3๏ธโƒฃ ์ž๋™ํ™”๋œ ํฌ๋กฌ ์ฐฝ ์‹คํ–‰

๋ฐ›์•„์˜จ chromedriver.exe๋ฅผ selenium์— ์—ฐ๊ฒฐํ•ด์ค˜์•ผ selenium์œผ๋กœ ์›น ํŽ˜์ด์ง€ ์กฐ์ž‘ ๊ฐ€๋Šฅ

service = Service(chrome_driver)
driver = webdriver.Chrome(service = service)

webdriver์˜ Chrome ํ•จ์ˆ˜์—์„œ๋Š” sevice ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, 

ํฌ๋กฌ ๋“œ๋ผ์ด๋ฒ„๋ฅผ Service ํด๋ž˜์Šค์— ๋„ฃ์–ด์ฃผ์–ด service ๊ฐ์ฒด ์ƒ์„ฑ

 

๐Ÿ‘‰ ์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

์œ„์ฒ˜๋Ÿผ ์ž๋™ํ™”๋œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฉ”์„ธ์ง€๊ฐ€ ์ถœ๋ ฅ ๋˜๋ฉด ์„ฑ๊ณต

 

4๏ธโƒฃ ์›น ํŽ˜์ด์ง€ ์ด๋™ํ•˜๊ธฐ

get ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ํŽ˜์ด์ง€ ์ด๋™ ๊ฐ€๋Šฅ

URL = "https://www.gmarket.co.kr/"
driver.get(URL)

 

5๏ธโƒฃ ์‹œ๊ฐ„์ง€์—ฐ, ์ž๋™์ข…๋ฃŒ

selenium์€ ํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ์ด๋™ํ•˜๋ฉด์„œ ์กฐ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, 

์ ์ ˆํ•œ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”

 

๋งŒ์•ฝ ํŒŒ์ด์ฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋ผ๊ณ  ๋ช…๋ นํ—€๋Š”๋ฐ ํฌ๋กฌ ์ฐฝ์ด ์•„์ง ๋กœ๋”ฉ ์ค‘์ด๋ผ๋ฉด, 

์ •ํ™•ํ•œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ์ƒํ™ฉ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ

 

์ด๋Ÿฌํ•œ ์‚ฌํƒœ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด,

time ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” sleepํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ

import time

time.sleep( "๋Œ€๊ธฐ์‹œ๊ฐ„(์ดˆ)" )

์‹คํ–‰ํ–ˆ๋˜ ํฌ๋กฌ ์ฐฝ์„ ์ข…๋ฃŒํ•˜์—ฌ ๋งˆ๋ฌด๋ฆฌ

driver.close()

โญ์ •๋ฆฌํ•˜๊ธฐโญ

โ€‹โœ” ๋™์  ํฌ๋กค๋ง์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: selenium

- webdriver๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋ฅผ ์‹คํ˜„

โœ” webdriver

- ๋งŽ์€ ๋ธŒ๋ผ์šฐ์ €, ์šด์˜์ฒด์ œ ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๊ณ 

- ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹จ์ˆœํ™” ๋ฐ ๊ฐ€์†ํ™” ํ•ด์ฃผ๋Š” ํˆด

โœ” selenium ๋‚ด์žฅํ•จ์ˆ˜

โœ” ์‹œ๊ฐ„ ์ง€์—ฐ์„ ์œ„ํ•œ time.sleep()

728x90