๐Ÿ•‹์ดˆ๋ณด๋„ ํ•  ์ˆ˜ ์žˆ๋Š” python์œผ๋กœ ๋„ค์ด๋ฒ„์—์„œ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ! (1)

2
post-thumbnail

๋“ค์–ด๊ฐ€๋ฉฐ

์˜ค๋Š˜์€ python์œผ๋กœ ๋งค~~์šฐ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด

๋„ค์ด๋ฒ„์—์„œ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹ค์Šต์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ œ ๋ธ”๋กœ๊ทธ์˜ ์ €๋ฒˆ ๊ธ€์—์„œ python์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” google colab์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•, google์—์„œ ๋งŒ๋“  ์›น์„œ๋น„์Šค! - ๋งํฌ

์˜ค๋Š˜์€ ์ด colab ํ™˜๊ฒฝ์—์„œ python์œผ๋กœ ์›น ์ •๋ณด ๊ฐ€์ ธ์˜ค๋Š” ์‹ค์Šต์„ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ• ์›น ํฌ๋กค๋ง ์‹œ์ž‘ํ•˜๊ธฐ

import requests

import requests

๊ฐ€์žฅ ๋จผ์ € ํ•„์š”ํ•œ ์ž‘์—…์€ 'requests' ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›๋ž˜ 'requests' ๋Š” ํŒŒ์ด์ฌ ๋‚ด์žฅ ๋ชจ๋“ˆ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋•Œ๋ฌธ์— ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปค๋งจ๋“œ ์ฐฝ์—์„œ pip install requests๋ฅผ ํ†ตํ•ด ๊น”์•„์ฃผ์–ด์•ผ ํ•˜์ง€๋งŒ?

colab์—์„  ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ๊ณผ ํŒจํ‚ค์ง€๋“ค์€ ๊ฑฐ์˜ ๋ฏธ๋ฆฌ ์ค€๋น„๋˜์–ด์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

colab์—์„œ import requests๋ฅผ ์ž…๋ ฅํ•˜๊ณ  shift+enter๋กœ ์‹คํ–‰์‹œ์ผœ์ค์‹œ๋‹ค.

requests.get

์šฐ๋ฆฌ๋Š” requests ๋ชจ๋“ˆ์—์„œ get์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

requests.get์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ ์™€์„œ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ "์ž์‹ ์ด ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ์›น ํŽ˜์ด์ง€์˜ url" ์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” url๋กœ ๋„ค์ด๋ฒ„์˜ ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ž…๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๊ทธ์— ๋Œ€ํ•œ return์œผ๋กœ <Response [200]>์„ ๋˜์ ธ์ฃผ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Response ์ฝ”๋“œ 200์€ ์ฃผ๋กœ ์›น์—์„œ ํ†ต์‹  ์„ฑ๊ณต์— ๋Œ€ํ•œ ๋ฆฌํ„ด๊ฐ’์œผ๋กœ ์“ฐ์ด๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์ž ๊ทธ๋Ÿฌ๋ฉด requests.get์œผ๋กœ ํ†ต์‹ ์ด ์„ฑ๊ณตํ–ˆ๋‹ค๋Š”๊ฑด ์•Œ๊ฒ ๋Š”๋ฐ,

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋„ค์ด๋ฒ„์˜ ์›น ํŽ˜์ด์ง€ ์ •๋ณด๋Š” ์–ด๋””์—์„œ ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?

requests.get์˜ return๊ฐ’์— .text๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ํ•ด๋‹น ์›นํŽ˜์ด์ง€๊ฐ€ ์‘๋‹ต์œผ๋กœ ์ค€ ์›น ๋ฐ์ดํ„ฐ๋ฅผ str ํ˜•์‹์œผ๋กœ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ( ๋‚˜์ค‘์— .json ์„ ๋ถ™์—ฌ์„œ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธ€๋„ ์˜ฌ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค )

๋ฌด๋ ค ๊ธธ์ด๊ฐ€ 187,055์— ๋‹ฌํ•˜๋Š” ์ •๋ณด๋ฅผ str ํ˜•์‹์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import requests
html_info = requests.get(url).text

์‹ค์ œ๋กœ ์ฝ”๋”ฉ์„ ํ•  ๋•Œ๋Š” ๋ฐ›์•„์˜จ str ๊ฐ’์„ html_info ๊ฐ™์€ ๋ณ€์ˆ˜์— ๋‹ด์•„์ค„ ์ˆ˜ ์žˆ๊ฒ ์ฃ ?

๊ทธ๋ ‡๊ฒŒ ๋ฐ›์•„์˜จ str์€

์‹ค์ œ๋กœ html ์ฝ”๋“œ๋กœ ๋‘˜๋Ÿฌ์Œ“์ธ ๋„ค์ด๋ฒ„ ํ™ˆ ํŽ˜์ด์ง€์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

์Œ... ๊ทธ๋Ÿฐ๋ฐ ๊ฐ์ข… html ์–ธ์–ด์™€ ๊ธฐํ˜ธ๋“ค์ด ๋งค์šฐ ์‹ ๊ฒฝ์“ฐ์ด๋Š”๊ตฐ์š”..

์ด ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ์— ๋ง๊ณ  ๋„ค์ด๋ฒ„ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ๊ฐ™์€ ํŠน์ •ํ•œ ์ •๋ณด๋“ค๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ์š”?

์ด๋Ÿด ๋•Œ ์“ฐ๋ผ๊ณ  ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋“ˆ์ด ๋˜ ํ•˜๋‚˜ ์žˆ์œผ๋‹ˆ..

๋ฐ”๋กœ BeautifulSoup์ž…๋‹ˆ๋‹ค.

BeautifulSoup๋Š” ํ…์ŠคํŠธ๋กœ ์ด๋ฃจ์–ด์ง„ html ์ •๋ณด๋ฅผ ์ €ํฌ ์ž…๋ง›๋Œ€๋กœ ์ฐ๊ณ  ๋‹ค์ง€๊ณ  ์š”๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—„์ฒญ๋‚˜๊ฒŒ ํšจ๊ณผ์ ์ธ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.


๋‹ค์Œ ๊ธ€์—์„œ๋Š” ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ญ‰์น˜๋ฅผ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋กœ ๊ฐ€๊ณตํ•˜๋Š” BeautifulSoup, bs4์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

profile
์˜์–ด์˜๋ฌธํ•™๊ณผ ์ถœ์‹ ์˜ ๊ฐœ๋ฐœ์ž ๋Š˜ํ•œ์ž…๋‹ˆ๋‹ค. Python ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€