๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Study_note(zb_data)/EDA

์Šคํ„ฐ๋”” ๋…ธํŠธ (BeautifulSoup Web data 2-1)

๐Ÿ“Œ BeautifulSoup - Web data 2-1

๐Ÿšฉ ๋ชฉํ‘œ ๋ฐ์ดํ„ฐ

  • ๊ฐ€๊ฒŒ ์ด๋ฆ„
  • ๋Œ€ํ‘œ ๋ฉ”๋‰ด
  • ๋Œ€ํ‘œ ๋ฉ”๋‰ด์˜ ๊ฐ€๊ฒฉ
  • ๊ฐ€๊ฒŒ ์ฃผ์†Œ

๐Ÿšฉ Web data ํฌ๋กค๋ง์‹œ 403 error ํ•ด๊ฒฐํ•˜๊ธฐ

  • headers ๊ฐ’์— User-Agent ๊ฐ’์„ ์ฃผ๋ฉด ๋œ๋‹ค
  • User-Agent ๊ฐ’?
    • Ctrl+shift+i ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์—ด๊ธฐ
    • ๋„คํŠธ์›Œํฌ - ํ—ค๋” - User-Agent ๊ฐ’ ํ™•์ธ

-
-

  • ๋˜๋Š”, fake_useragent๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ User-Agent ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค
    • ์•„๋‹ˆ๋ฉด {"User-Agent" : "Chrome" } ๋„ ๋Œ€์ฒด ๊ฐ€๋Šฅ

๐Ÿšฉ Data ๊ตฌ์กฐ ํ™•์ธํ•˜๊ธฐ

  • ์ˆœ์œ„๊ฐ€ 50์œ„ ๊นŒ์ง€ ์žˆ์œผ๋ฉฐ, 1๊ฐœ๋‹น sammy ํด๋ž˜์Šค์— ๋‹ด๊ฒจ์ ธ ์žˆ๋Š” ๊ตฌ์กฐ.

ํ•ด๋‹น ๋งํฌ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

๐Ÿšฉ Data ์ฒดํฌ ํ•˜๊ธฐ

  • div ํƒœ๊ทธ์— sammy ํด๋ž˜์Šค ์ž๋ฃŒ ์ฐพ๊ธฐ
  • ์ด 50๊ฐœ์ธ ๊ฒƒ ๊นŒ์ง€ ํ™•์ธ
    • select(".sammy") ์‚ฌ์šฉ๊ฐ€๋Šฅ

len ํ•จ์ˆ˜๋กœ 50๊ฐœ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฆฌ์ŠคํŒ… ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

  • ์ฒซ ๋ฒˆ์งธ index ๋งŒ ์ฒดํฌ์šฉ์œผ๋กœ ํ™•์ธ

tmp_one ๋ณ€์ˆ˜์— ๋‹ด์•„์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”!

  • ์ˆœ์œ„์™€ ๋ฉ”๋‰ด, ๊ฐ€๊ฒŒ ์ด๋ฆ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

-

  • ๋ฉ”๋‰ด ์ด๋ฆ„, ๊ฐ€๊ฒŒ ์ด๋ฆ„ ๋ฐ˜ํ™˜ ํ•˜๊ธฐ
    • split์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ
    • \n|\r\n ?

-
-
-

  • ์ƒ๋Œ€์ฃผ์†Œ (ํ•˜์œ„์ฃผ์†Œ) ๋ฐ˜ํ™˜ํ•˜๊ธฐ

๐Ÿšฉ ์›ํ•˜๋Š” Data ์ถ”์ถœํ•˜๊ธฐ!

  • urllib.parse, urljoin ์„ ์–ธ (url ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉ)
  • urljoin(url_base, "์ƒ๋Œ€์ฃผ์†Œ ๋ฐ์ดํ„ฐ")

-

  • ๊ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ์ถ”์ถœ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ

๐Ÿšฉ DataFrame ์ œ์ž‘

  • ๋”•์…”๋„ˆ๋ฆฌ ์•ˆ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ์‹ผ๋‹ค

data๋ฅผ pandas์˜ DataFrame์— ๋„ฃ๋Š”๋‹ค
์ปฌ๋Ÿผ์„ ๋ณด๊ธฐ์ข‹๊ฒŒ ๋ฐ”๊พผ๋‹ค.