๋๋ ํ๋ผ์คํฌ ์ฑ์์ ์ด๊ฒ์ ๋ฐ๊ฒฌํ์ง๋ง werkzeug๋ฅผ ์ฌ์ฉํ์ฌ useragent ์ ๋ณด๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ํ๋ผ์คํฌ ์์ฒญ ๊ฐ์ฒด์ ๋ ๋ฆฝํ werkzeug useragent ํ์์์ ๋์ผํ ๋์์ ๋ณด์์ต๋๋ค.
"macro"(์ฅ์น ๋ชจ๋ธ)์ ํ์ ๋ฌธ์์ด "mac"์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ง๋ง "๋ฆฌ๋ ์ค"๋ฐ / ๋๋ "์๋๋ก์ด๋ 9"๋ก ๋ฎ์ด ์จ์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
>>> from werkzeug.useragents import UserAgent
>>> UserAgent("Mozilla/5.0 (Linux; Android 9; motorola one macro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.111 Mobile Safari/537.36").platform
'macos'
์ด useragent ๋ฌธ์์ด์ platform
๋ "android"๊ฐ ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
ํ๊ฒฝ : Linux
๋ฌธ์ ๋ UserAgentParser
์ด ์์งํ๊ฒ ํค์๋๋ฅผ ๊ฒ์ํ์ฌ ํ๋ซํผ์ ์ฐพ๋ ๊ฒ์
๋๋ค.
๋ค์์ ๊ด๋ จ ์ฝ๋ ์ค ๋ํซ์ ๋๋ค.
platforms: Any = (
(" cros ", "chromeos"),
("iphone|ios", "iphone"),
("ipad", "ipad"),
(r"darwin|mac|os\s*x", "macos"),
("win", "windows"),
(r"android", "android"),
...
๊ทํ์ ๊ฒฝ์ฐ "darwin|mac|os\s*x"
๋ "android"
๊ฐ ๊ฒ์๋๊ธฐ ์ ์ ์ผ์นํ๋ ํญ๋ชฉ์ ์ฐพ์ต๋๋ค. ๋ด๊ฐ ๋ณธ ์ฌ์ฉ์ ์์ด์ ํธ ํค๋์์ ๋ณด๋ฉด ํฌ๊ฒ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋ ๋ง์ ๊ฒฝํ์ด์๋ ์ฌ๋์ด ๋ ๋์ ์ ๊ท์ ํจํด์ ์ ์ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฐ๋จํ ํค์๋ ๊ฒ์์ด ๋ถ์ ์ ํ๊ณ ๋น์ ๊ณผ ๊ฐ์ด ๋์ ๋์ง ์๋ ๋ฒ๊ทธ๊ฐ ๋ ๋ง์ด์์ ์ ์๋ค๋ ์ ์ด ์ฐ๋ ค๋ฉ๋๋ค.
์ฌ๋ด์์ ์ํํ๋ ๋์ ua-parser ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ข ์์ฑ์ ์ถ๊ฐํ๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๋๋ ๋งค์ฐ ํฐ ํ ์คํธ ์ธํธ ๋ฅผ ๊ฐ์ง ๊ฝค ์ธ๊ธฐ์๋ ํฌ๋ก์ค ์ธ์ด ์ฝ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ์ ๊ทธ๊ฒ์ ๋ฆฌ๋ทฐ๋ฅผํ๋ค. ํ์ด์ฌ ๋ฒ์ ์ ๋งค์ฐ ๋ค์ํ ํ์ด์ฌ ๋ฒ์ ์ ์ง์ํ๋ฉฐ ์ฝ๋ ์์ฒด๋ ๋งค์ฐ ์์ ์ ์ด์ด์ผํฉ๋๋ค.
๋น์ ์ด ๊ทธ๊ฒ์ ๊ท ์ด์ ๊ฐ์ง๊ณ ์ถ์ง ์๋ค๋ฉด ๋๋ PR์ ์ ์ ํ ๊ฒ์ ๋๋ค. ์ข์ ํด๊ฒฐ์ฑ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ ๊ท ์ด์ ๊ฐ๊ณ ์ถ๋ค. ๊ฐ์ฌ!
Rad! ๊ฐ์ฌ!
์ด ์์ด์ ํธ๊ฐ ์ผ์นํ๋ ๋ฐฉ์์ ์์ ํ๊ธฐ ์ํด ์ผ์น ๊ท์น์ ์กฐ์ ํ๋ PR์ ๊ณ ๋ คํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.ํ์ง๋ง ์ด์ ๋ํ ์ข ์์ฑ์ ์ถ๊ฐํ์ง๋ ์์ ๊ฒ์ ๋๋ค.
ua-parser
ํจํค์ง๋ ์ ๊ท์ ํจํด์ ์ฌ์ฉํ์ฌ ์ ์ ํ ์ฌ์ฉ์ ์์ด์ ํธ๋ฅผ ์ฐพ์ต๋๋ค (์ฐ๋ฆฌ์ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋น์ทํ์ง๋ง ๋ถ๋ช
ํ ๋ ์ฒ ์ ํจ). ์ ๊ท์ ํจํด์ ~ 5500 ์ค์ ์ฝ๋๋ฅผ ์ฐจ์งํฉ๋๋ค.
ua-parser
๋ฅผ ์ข
์์ฑ์ผ๋ก ์ถ๊ฐํ๊ฑฐ๋ Werkzeug์ ์ฝ๋์ ์ผ๋ถ๋ฅผ ํฌํจํ์ง ์๊ณ ๋ ์์ ํ UserAgentParser
๋ฅผ ์ ๊ณต ํ ์ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ readme ๋ฐ / ๋๋ ๋ฌธ์์ ๋ฉ์์ง๋ฅผ ์ถ๊ฐํ์ฌ UserAgentParser
๊ฐ ๊ธฐ๋ณธ์ด๋ฉฐ ๋ง์ ์๋๋ฆฌ์ค์์ ์๋ํ์ง ์์ ๊ฒ์์ ์ค๋ช
ํ ์ ์์ต๋๋ค.
์ด ํ๋ซํผ ๋ฌธ์์ด์ ๋ค๋ฃจ๊ธฐ ์ํด # 1989๋ฅผ ์ด์์ง๋ง ์ฌ๊ธฐ์์ ๋ํ์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ํ ์์ ํ ์์ ์ด ์๋๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ๋ด์์ ์ํํ๋ ๋์ ua-parser ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ข ์์ฑ์ ์ถ๊ฐํ๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๋๋ ๋งค์ฐ ํฐ ํ ์คํธ ์ธํธ ๋ฅผ ๊ฐ์ง ๊ฝค ์ธ๊ธฐ์๋ ํฌ๋ก์ค ์ธ์ด ์ฝ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ์ ๊ทธ๊ฒ์ ๋ฆฌ๋ทฐ๋ฅผํ๋ค. ํ์ด์ฌ ๋ฒ์ ์ ๋งค์ฐ ๋ค์ํ ํ์ด์ฌ ๋ฒ์ ์ ์ง์ํ๋ฉฐ ์ฝ๋ ์์ฒด๋ ๋งค์ฐ ์์ ์ ์ด์ด์ผํฉ๋๋ค.