Welcome! ๐Ÿ™‹โ€โ™‚๏ธ View more

Personal/Toy Project

AWS EC2์™€ Python Selenium ์„ ํ™œ์šฉํ•œ ํ† ์ด ํ”„๋กœ์ ํŠธ ๐Ÿ’ป (feat. ๋ฐฉํƒˆ์ถœ ์ž๋ฆฌ ์ฐพ๊ธฐ!)

DeepFlame 2022. 1. 7. 21:47

ํ•„์ž๋Š” ์ตœ๊ทผ์— AWS Certified Cloud Practitioner ์ž๊ฒฉ์ฆ์„ ์ทจ๋“ํ–ˆ๋‹ค. Data Engineer๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ทธ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์–ธ์–ด๋Š” ์•Œ์•„์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

AWS ์ž๊ฒฉ์ฆ์„ ์ทจ๋“ํ•˜๋ฉด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฑƒ์ง€. ๊ฐ€์žฅ ๊ธฐ๋ณธ ์ž๊ฒฉ์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ๋ฌด์ƒ‰์ด๋‹ค.

 

ํ•ฉ๊ฒฉ์˜ ๊ธฐ์จ๋„ ์ž ์‹œ, ์ž๊ฒฉ์ฆ๋„ ์ทจ๋“ํ–ˆ์œผ๋‹ˆ ๋ณธ๊ฒฉ์ ์œผ๋กœ AWS๋ฅผ ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ๋‹ค์งํ–ˆ๋‹ค!

 

 


1. ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ์ •ํ•˜๊ธฐ

ํ•„์ž๋Š” ๋ฐฉํƒˆ์ถœ ์ทจ๋ฏธ๋กœ ์ฆ๊ธด๋‹ค. ์ทจ์ง ํ›„ ์ƒ๊ฒฝํ•˜์—ฌ ์œ ๋ช…ํ•˜๋‹ค๋Š” ๋ฐฉํƒˆ์ถœ์€ ๋Œ€๋ถ€๋ถ„ ํ•ด๋ดค๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ์•ฝ์กฐ์ฐจํ•˜๊ธฐ ํž˜๋“  ์œ ๋ช…ํ•œ ๋ฐฉํƒˆ์ถœ ํ…Œ๋งˆ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ ํ™๋Œ€ ๋ฆฌ์ฝ”๋”์˜ "Tempo Rubato"์ด๋‹ค.

2022.01.07 ๊ธฐ์ค€ 2023.01.06๊นŒ์ง€ ๋ชจ๋‘ ์˜ˆ์•ฝ์ด ๋งˆ๊ฐ๋˜์–ด์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋‘ ๋‹ฌ ์‚ฌ์ด์— ์ทจ์†Œ๋˜๋Š” ์‹œ๊ฐ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์„œ ์žˆ๋‹ค๋ฉด ๊ทธ ์ •๋ณด๋ฅผ ๋ฉ”์ผ์„ ์ „์†กํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ–ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๋ฅผ ์„ ์ •ํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ ์„ ๊ณ ๋ คํ–ˆ๋‹ค.
1. 24์‹œ๊ฐ„ ๋Œ์•„๊ฐ€์•ผํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•œ ์ผ
2. ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…์ด ํ•„์š”ํ•œ ์ผ
3. (์ค‘์š”!) ์‹ค์งˆ์ ์œผ๋กœ ํ•„์š”ํ•˜๊ณ , ๊ด€์‹ฌ์ด ๊ฐ€๋Š” ์ผ! ๐Ÿ”ฅ

 

 


2. AWS EC2 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•

EC2๋‚˜ Linux ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ ‘ํ•œ ๊ฒฝํ—˜์ด ์—†์–ด์„œ ๊ฝค ํ•ด๋งธ์ง€๋งŒ, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ• ์™„์„ฑํ–ˆ๋‹ค.

  • AWS Management Console์—์„œ EC2๋ฅผ ์ƒ์„ฑ (Ubuntu)
  • PuTTY๋ฅผ ์‚ฌ์šฉํ•ด EC2์™€ ์—ฐ๊ฒฐ ํ›„ ๋ช…๋ น์–ด ์ž…๋ ฅ
  • Filezilla๋ฅผ ์‚ฌ์šฉํ•ด EC2์™€ ์—ฐ๊ฒฐ ํ›„ Windows์—์„œ ์ž‘์„ฑํ•œ Python Script ์ „์†ก

์ดํ›„ EC2 ํ™˜๊ฒฝ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€์™€ ํŒŒ์ผ๋“ค์„ ์„ค์น˜ํ–ˆ๋‹ค. (PIP, Selenium, Chrome, Chrome Driver ์„ค์น˜ ๋“ฑ)

https://deep-flame.tistory.com/3

 

EC2์— Selenium ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ (feat. Chrome, Chrome Driver)

0. PIP ์„ค์น˜ ์ตœ์ดˆ EC2 ์‚ฌ์šฉ์ž๋“ค์€ PIP๋ฅผ PIP๋ฅผ ๋จผ์ € ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. https://deep-flame.tistory.com/entry/%EC%B5%9C%EC%B4%88-EC2%EC%97%90-PIP-%EC%84%A4%EC%B9%98 ์ตœ์ดˆ EC2์— PIP ์„ค์น˜ EC2 ์ตœ์ดˆ ๊ฐœ์„ค ํ›„ PI..

deep-flame.tistory.com

 

PuTTY์™€ Filezilla

 

 


3. ๊ตฌํ˜„ with Python

๊ตฌํ˜„ ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
1. Selenium์„ ์ด์šฉํ•ด ๋‚ ์งœ ๊ฐ์ฒด๋ฅผ ํด๋ฆญํ•˜๊ณ , ์‹œ๊ฐ„๋ณ„๋กœ ์ด์šฉ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•œ๋‹ค. (ํ˜„์žฌ์›”+๋‹ค์Œ๋‹ฌ) - GetInfo ํ•จ์ˆ˜
2. ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์ด ๋‚˜์˜จ๋‹ค๋ฉด ๋ฉ”์ผ ์ „์†กํ•œ๋‹ค. - SendMail ํ•จ์ˆ˜

 

1. Selenium์„ ํ†ตํ•œ ์›น ์ปจํŠธ๋กค

โ‘  ๋‚ ์งœ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์›ํ•˜๋Š” ๋‚ ์งœ๋ฅผ ์ฐพ์•„ ํด๋ฆญํ•œ๋‹ค.
โ‘ก ์‹œ๊ฐ„ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์ด๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค! ๐Ÿค—

 

+์ถ”๊ฐ€)

์ฝ”๋“œ ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ๋‚˜๋ฅผ ๊ดด๋กญํ˜”๋˜ ์—๋Ÿฌ๊ฐ€ ์žˆ์—ˆ๋‹ค.๐Ÿ˜ค

"Message: stale element reference: element is not attached to the page document"

๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋‹ˆ time.sleep์œผ๋กœ ํ…€์„ ๋‘๊ณ  ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•„์ž์˜ ๊ฒฝ์šฐ ํ•ด๊ฒฐ์ด ๋˜์ง€ ์•Š์•˜๋‹ค. 
์•ฝ ํ•œ์‹œ๊ฐ„ ๊ฐ€๋Ÿ‰ ์›์ธ์„ ํŒŒ์•…ํ•ด๋ณธ ๊ฒฐ๊ณผ ๋‹ฌ๋ ฅ์„ ํด๋ฆญํ•˜๋ฉด ๋‹ฌ๋ ฅ ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. (๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด์„œ ๊ธฐ์กด์— ์ฐพ์•„์„œ ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•œ ๊ฐ์ฒด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค.) ๊ทธ๋ž˜์„œ ํด๋ฆญ ์ด๋ฒคํŠธ ํ›„, ๋‹ค์‹œ ๋‹ฌ๋ ฅ ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

 


2. ๊ฒฐ๊ณผ ์ด๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ

ํ•ด๋‹น ๊ตฌํ˜„ ๊ณผ์ •์—์„œ๋Š” ์•„๋ž˜ URL์„ ์ฐธ๊ณ ํ–ˆ๋‹ค.

https://yeolco.tistory.com/93

 

ํŒŒ์ด์ฌ์œผ๋กœ ์ด๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ(SMTP)

์•ˆ๋…•ํ•˜์„ธ์š” ์—ด์ฝ”์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ํŒŒ์ด์ฌ์„ ํ™œ์šฉํ•˜์—ฌ ์ง€๋ฉ”์ผ(Gmail)๋กœ ๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์—์„œ ๋ฉ”์ผ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ณ„๋„๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ, 'SMT

yeolco.tistory.com

 

 

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฉ”์ผ์ด ์ž˜ ์ „์†ก๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ๐Ÿ˜€

 

 


4. EC2์— ํŒŒ์ผ ์ „์†ก ํ›„ ์‹คํ–‰

Filezilla๋ฅผ ํ†ตํ•ด์„œ 3๋ฒˆ์—์„œ ๊ฐœ๋ฐœํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์˜ฎ๊ฒผ๋‹ค.

ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๋ฅผ 24์‹œ๊ฐ„ ์‹คํ–‰ํ•˜๊ณ , PuTTY๋ฅผ ์ข…๋ฃŒํ•ด๋„ ์‹คํ–‰๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ nohup์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค.

https://deep-flame.tistory.com/4

 

ํ„ฐ๋ฏธ๋„ ์ข…๋ฃŒ ํ›„์—๋„ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ (feat. Selenium ์ž‘๋™์‹œ ์œ ์˜์‚ฌํ•ญ)

ํ•˜๋ฃจ์ข…์ผ ์‹คํ–‰ํ•ด์•ผํ•  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์–ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋Œ๋ ค์•ผํ–ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด nohup์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค. nohup python3 MyScript.py & nohup python3 MyScript.py > /dev/null & # ํ‘œ์ค€์ถœ๋ ฅ์„ ์„ค์ •..

deep-flame.tistory.com

 

์ƒˆ๋ฒฝ์—๋„ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ธฐ๋ก๋“ค ๐Ÿ”ฅ

 

 


๐Ÿค”๋งˆ๋ฌด๋ฆฌ

AWS ์ž๊ฒฉ์ฆ์€ ์ทจ๋“ํ–ˆ์ง€๋งŒ, ์‹ค์ œ ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์—†์–ด์„œ ์•„์‰ฌ์›€์ด ์ปธ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋ฒˆ ๊ธฐํšŒ์— ๋ง‰์—ฐํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ์—ˆ๋˜ AWS ์ด์šฉ๊ณผ Linux ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ์–ด ์ฆ๊ฑฐ์šด ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ AWS๋ฅผ ํ†ตํ•ด์„œ ์ •๋ง ํ•˜๊ณ ์‹ถ์€ ๊ฒƒ์€ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๊ตฌ์ถ•์ด๋‹ค. ์ด๋ฒˆ ๋‹ฌ ์•ˆ์— ์•„๋ž˜ ์ฑ…์œผ๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•  ์˜ˆ์ •์ด๋‹ค! ํ™”์ดํŒ…! ๐Ÿคฉ

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๊ตฌ์ถ• 

 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๊ตฌ์ถ• - YES24

์ž์ฒด ์‹œ์Šคํ…œ๋ถ€ํ„ฐ ํด๋ผ์šฐ๋“œ๊นŒ์ง€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ•˜๋‘ก๊ณผ ๋น…๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ์šด์˜, ๊ตฌ์ถ•, ์„ค๊ณ„์˜ ๋ชจ๋“  ๊ฒƒ๋น…๋ฐ์ดํ„ฐ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋„˜์ณ๋‚˜์ง€๋งŒ ์ด ๋ชจ๋“  ๊ธฐ์ˆ ์„ ๋งค๋„๋Ÿฝ๊ฒŒ ์—ฐ๊ฒฐํ•ด์„œ ์™„๋ฒฝํ•œ ์—”ํ„ฐํ”„๋ผ

www.yes24.com

 

+ ์ถ”๊ฐ€) ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ์ง€ 3์ผ์ฐจ์— ๋ฌธ์ž๋ฅผ ๋ฐ›์•˜๋‹ค...! ๐Ÿ”ฅ  ์›”์š”์ผ ์˜ค์ „ 10์‹œ๋ผ์„œ... ์˜ˆ์•ฝ์€ ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์–ด์จ‹๋“  ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ–ˆ๋‹ค!