ํฌ๋กค๋ง - ์ธํ„ฐ๋„ท ์ƒ์— ์กด์žฌํ•˜๋Š” ์›น ๋ฌธ์„œ๋“ค์„ ์ถ”์ ํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ธฐ๋ฒ•

 

์ผ๋‹จ ๊ฐ€์ƒํ™˜๊ฒฝ ๋จผ์ € ์‹คํ–‰ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค (ํ”„๋กœ์ ํŠธ ๋ณ„๋กœ ๋…๋ฆฝ๋œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ)

pipenv shell (๊ผญ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ์ตœ์ƒ๋‹จ ์œ„์น˜์—์„œ ์ƒ์„ฑ! ex) session4) - ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ์‹œ์ž‘

pipenv install requests

pipenv install bs4 (beautifulsoup4 : HTML๊ณผ XML ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€ - find ํ•จ์ˆ˜, select ํ•จ์ˆ˜ ์ด์šฉ)

 

*exit - ๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ธฐ

 pipenv install ํŒจํ‚ค์ง€๋ช…

 pipenv uninstall ํŒจํ‚ค์ง€๋ช…

 

ํฌ๋กค๋ง์˜ ๊ธฐ๋ณธ์ ์ธ flow๋Š” 1. ์›น ์‚ฌ์ดํŠธ url์— get ์š”์ฒญ -> 2. find๋‚˜ select ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์›ํ•˜๋Š” HTML element ๊ฐ€์ ธ์˜ค๊ธฐ -> 3. ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฒฐ๊ณผ๊ฐ’ ํ˜•ํƒœ๋กœ ๊ฐ€๊ณตํ•˜๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.

 

1) url ์—ฐ๊ฒฐ์„ ์œ„ํ•œ main.py ๋งŒ๋“ค๊ธฐ

2) ์›ํ•˜๋Š” ์ฃผ์†Œ์— ์š”์ฒญ ๋ณด๋‚ด๊ธฐ

 

์ฃผ๋กœ query์— ๋ณ€์ˆ˜๋ฅผ ๋‹ด์•„ ์ •๋ณด๋ฅผ ์ „์†กํ•ด์„œ get ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”๋ฐ, url ๋’ค์— ? ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ๋ณ€์ˆ˜์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.(๊ฐ ์Œ์€ &๋กœ ๊ตฌ๋ณ„)

2๋ฒˆ์งธ ํŽ˜์ด์ง€, ํ•œํŽ˜์ด์ง€์—๋Š” 80๊ฐœ์˜ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ, ๊ฒ€์ƒ‰์–ด๋Š” ๋ฐ˜์ˆ™๋ž€

get ์š”์ฒญ์œผ๋กœ ํ•ด๋‹น ํŽ˜์ด์ง€ ์ •๋ณด๋ฅผ egg.html์— ์ €์žฅํ•˜๊ณ , egg_soup ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ํŒŒ์‹ฑ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ €์žฅํ•ด์ค€๋‹ค.

 

3) ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ

find ์™€ find_all ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์ƒํ’ˆ์„ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•ด์ค€๋‹ค.

๋งจ ์œ„ ๋ฆฌ์ŠคํŠธ์— class ์ด๋ฆ„์ด ์จ์žˆ์Œ

์—ฌ๊ธฐ์„œ ์ฒซ๋ฒˆ์งธ ์ƒํ’ˆ์˜ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ul > li> basicList_inner__eY_mq > basicList_title_3P9Q7 > a ์ˆœ์œผ๋กœ ์ €์žฅ

(๊ฐ€๊ฒฉ, ๋””ํ…Œ์ผ๋„ ๋‹ค ๋งˆ์ฐฌ๊ฐ€์ง€) ์š”๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” egg.py์— ์ €์žฅ

* ํ…์ŠคํŠธ ์ถ”์ถœ ๋ฐฉ๋ฒ• 

.text ์™€ .string ์˜ ์ฐจ์ด์ 

4) ๋ฐ์ดํ„ฐ ์ €์žฅ

์ƒ์„ธ์ •๋ณด๋„ ๋ฐฐ์—ด๋กœ ๋‹ด์•„ result์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ

 ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์ค€๋‹ค

 

์ฝ”๋“œ๋ฅผ url ์—ฐ๊ฒฐํ•˜๋Š” ํŒŒ์ผ์ธ main.py์™€ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ๊ฐ€๊ณตํ•˜๋Š” egg.py ๋กœ ๋‚˜๋ˆ ์ฃผ๋ฉด

main.py - from ํŒŒ์ผ๋ช… import ํ•จ์ˆ˜๋ช…์œผ๋กœ egg.py ํ•จ์ˆ˜ ๊ฐ€์ ธ์˜ค๊ธฐ
egg.py

์—ฌ๊ธฐ์„œ main.py๋ฅผ ์ˆ˜์ •ํ•ด 1~10ํŽ˜์ด์ง€ ์ „์ฒด ์ƒํ’ˆ ๋ชฉ๋ก ์ €์žฅ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค!

5) csv ํŒŒ์ผ๋กœ ์ €์žฅ (DB์— ์ง์ ‘ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ ํ˜•์‹!)

main.py ์— import csv ํ›„ 

์ด๋Ÿฐ ์ฝ”๋“œ ์ถ”๊ฐ€๋ฅผ ํ†ตํ•ด egg.csv๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ bs4์˜ ๊ฒฝ์šฐ ์›น์‚ฌ์ดํŠธ์˜ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๊ณ , ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์›น์‚ฌ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ฝ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— Selenium์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธ๋ฆฌํ•˜๋‹ค. selenium ์ด์šฉ ์‹œ ์›น ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋™์ ํฌ๋กค๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค. ํฌ๋กค๋ง ๊ฒฐ๊ณผ์˜ ํŠน์ • html ์—˜๋ฆฌ๋จผํŠธ์— ๋งˆ์šฐ์Šค ํด๋ฆญ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฑฐ๋‚˜ , input ์—˜๋ฆฌ๋จผํŠธ์— ํ…์ŠคํŠธ๋ฅผ ์ฑ„์›Œ๋„ฃ๊ธฐ ๋“ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

https://www.hanumoka.net/2020/07/05/python-20200705-python-selenium-install-start/

 

Selenium ์„ค์น˜ํ•˜๊ธฐ ๋ฐ ํฌ๋กค๋ง ์˜ˆ์ œ

๋“ค์–ด๊ฐ€๊ธฐpython์œผ๋กœ ํฌ๋กค๋ง์„ ํ•  ๋•Œ, ํฌ๋กค๋ง ๋Œ€์ƒ์ธ ์›น ํŽ˜์ด์ง€์— ๋™์ ์ธ ๋™์ž‘์„ ๊ณ๋“ค์—ฌ์„œ ํฌ๋กค๋ง์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด selenium ์ด๋‹ค. selenium ์žฅ์  ์›น ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ

www.hanumoka.net

https://pythondocs.net/selenium/%EC%85%80%EB%A0%88%EB%8B%88%EC%9B%80-%ED%81%AC%EB%A1%A4%EB%9F%AC-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95/

 

์…€๋ ˆ๋‹ˆ์›€ ํฌ๋กค๋Ÿฌ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• - ๋ปฅ๋šซ๋ฆฌ๋Š” ํŒŒ์ด์ฌ ์ฝ”๋“œ ๋ชจ์Œ

์…€๋ ˆ๋‹ˆ์›€ ์ „๋ฐ˜์— ๊ด€ํ•˜์—ฌ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•œ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ์…€๋ ˆ๋‹ˆ์›€ ๋ฒ„์ „ 3 ๊ธฐ์ค€์ด๋‹ค. ์ตœ๊ทผ 4๋ฒ„์ „์ด ์ถœ์‹œ๋˜์—ˆ์œผ๋‚˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์ด ์•ฝ๊ฐ„ ๋‹ค๋ฅด๋‹ˆ ์ด ๋ถ€๋ถ„์„ ํ™•์ธํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ด๋‚˜ ์˜ˆ์‹œ๋Š” ๋”ฐ๋กœ

pythondocs.net

https://dev-dain.tistory.com/91

 

[์ƒ์กดํ˜• ํŠœํ† ๋ฆฌ์–ผ] ํŒŒ์ด์ฌ selenium์œผ๋กœ ๋ฐ์ดํ„ฐ ํฌ๋กค๋ง

์˜ˆ์ „์—๋Š” beautifulsoup4๋ฅผ ์ด์šฉํ•ด์„œ ํฌ๋กค๋ง์„ ํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” selenium์œผ๋กœ ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์žฅ ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜์ ์ธ ์‚ฌ์šฉ๋ฒ•๋งŒ ์ตํžˆ๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. beautifulsoup4์™€ ์…€๋ ‰ํŒ…ํ•˜

dev-dain.tistory.com

https://www.youtube.com/watch?v=yQ20jZwDjTE 

์ด๊ฑฐ ๋ณด๊ณ  ์ดํ•ด ๋ฐ ์ ์šฉ..!

ํ•ด์„œ ์ž‘์„ฑํ•œ ๋„ค์ด๋ฒ„์ง€๋„ ํฌ๋กค๋ง ์ฝ”๋“œ (selenium ์‚ฌ์šฉ)

๋‹ค์Œ ํŽ˜์ด์ง€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” selenium์ด ์ ์šฉ์ด ์•ˆ๋˜๋Š”๋ฐ ์ด๊ฑด ์ฝ”๋“œ ๋‹ค์‹œ ์งœ๋ณด๊ธฐ..(์ฝ”๋“œ ๋ฌธ์ œ๋ผ๊ธฐ๋ณด๋‹จ ์ด๋ฏธ์ง€ ํด๋ฆญ์€ ์›๋ž˜ ํฌ๋กค๋ง์ด ์ž˜ ์•ˆ๋จน๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.)

 

*๋‹ค์‹œ ์‹คํ–‰ํ–ˆ๋”๋‹ˆ chromsdriver ๊ฒฝ๋กœ ์ง€์ • ์˜ค๋ฅ˜ ๋œจ๊ธธ๋ž˜ ์ฝ”๋“œ ์ˆ˜์ •

cmd ์—์„œ pip install webdriver-manager

python ์—

from selenium import webdriver

from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ

 

+) ์ฃผ๊ธฐ์ ์œผ๋กœ ํฌ๋กค๋ง์„ ํ•˜๊ธฐ ์œ„ํ•ด celery๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ คํ–ˆ์œผ๋‚˜ ์‹คํŒจ..

๊ฒฐ๊ตญ ๋…ธํŠธ๋ถ ๋‚ด์— ์žˆ๋Š” ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ๋กœ ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ์ •ํ•ด์ง„ ํŒŒ์ด์ฌ ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋„๋ก ์„ค์ •

์‹คํŒจํ–ˆ์ง€๋งŒ... ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ์‹œ์ž‘์€ ๋˜๋Š”๋ฐ ํฌ๋กค๋ง ๋ชปํ•˜๊ณ  ๋Š๊น€ (spiders๋งŒ ๋‹จ๋… ์‹คํ–‰ํ•˜๋ฉด ์ •์ƒ ์ž‘๋™)

celery๋Š” ์ด๋ ‡๊ฒŒ settings.py ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ์— celery.py ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•จ

settings.py์— celery ์Šค์ผ€์ค„ ์ถ”๊ฐ€

 

model ์žˆ๋Š” ๊ฒฝ๋กœ์— tasks.py ์ถ”๊ฐ€ํ•ด์„œ ์Šค์ผ€์ค„ ์„ค์ •ํ•ด์•ผ ํ•จ

์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ

+) ์ฟ ๋… ํ”„๋กœ์ ํŠธ์—์„œ ํฌ๋กค๋ง ํ–ˆ์„ ๋•Œ๋Š” scrapy์—์„œ spiders ์‚ฌ์šฉ

scrapy ์‚ฌ์šฉ ์ฝ”๋“œ

'LIKELIONxNEXT 10๊ธฐ๐Ÿฆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Next x Likelion] - django MTV, git ignore  (0) 2022.04.25
[Next x Likelion] Git & Github  (0) 2022.03.14

+ Recent posts