{"id":328,"date":"2018-08-09T19:30:32","date_gmt":"2018-08-09T10:30:32","guid":{"rendered":"http:\/\/dong1lkim.oboki.net\/?p=328"},"modified":"2019-09-01T22:21:34","modified_gmt":"2019-09-01T13:21:34","slug":"python-urllib","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/python\/python-urllib\/","title":{"rendered":"[Python] urllib"},"content":{"rendered":"<h1>urllib<\/h1>\n<p>urllib \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud574 web \ub370\uc774\ud130\ub97c python\uc5d0\uc11c \uc190\uc27d\uac8c \ud65c\uc6a9 \uac00\ub2a5.<br \/>\nurllib \ub0b4\uc5d0 \ucd1d 4\uac1c\uc758 \ubaa8\ub4c8\uc774 \uc874\uc7ac.<\/p>\n<ul>\n<li>request<\/li>\n<li>parse<\/li>\n<\/ul>\n<h2>request<\/h2>\n<p>\uc6f9\uc744 \uc5f4\uc5b4\uc11c \ub370\uc774\ud130 \uc77d\uc5b4\uc624\ub294 \uc5ed\ud560. \uc6f9\uc5d0\uc11c \uc5bb\uc740 \ub370\uc774\ud130 \uac1d\uccb4 \uc815\ubcf4 \uc804\ub2ec<\/p>\n<h3>test source code<\/h3>\n<pre><code class=\"python\">#!\/apps\/python\/bin\/python\n\nimport urllib.request\n\nreq = urllib.request\nres = req.urlopen(\"http:\/\/oboki.net\")\nprint (res)\n\n## \uc11c\ubc84 \uc815\ubcf4 \ubc18\ud658\nsvr = res.getheaders()\nfor i in svr:\n    print(i)\n\n## \uc0c1\ud0dc \ucf54\ub4dc \ubc18\ud658\nprint (res.status)\n\n## HTML \uc18c\uc2a4 \ubc18\ud658\nprint (res.read())\n<\/code><\/pre>\n<h3>result<\/h3>\n<pre><code>$ .\/request.py \n&lt;http.client.HTTPResponse object at 0x7f89060a3128&gt;\n('Date', 'Thu, 09 Aug 2018 10:28:44 GMT')\n('Server', 'Apache\/2.4.27 (Unix) OpenSSL\/1.0.2m PHP\/7.1.8')\n('X-Powered-By', 'PHP\/7.1.8')\n('Link', '&lt;http:\/\/www.oboki.net\/index.php?rest_route=\/&gt;; rel=\"https:\/\/api.w.org\/\"')\n('Link', '&lt;http:\/\/www.oboki.net\/&gt;; rel=shortlink')\n('Connection', 'close')\n('Transfer-Encoding', 'chunked')\n('Content-Type', 'text\/html; charset=UTF-8')\n200\nb'\\n\\n&lt;!DOCTYPE html&gt;\\n&lt;html lang=\"ko-KR\"&gt;\\n&lt;head&gt;\\n\\t&lt;meta charset=\"UTF-8\"&gt;\\n\\t&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"&gt;\\n\\t&lt;link rel=\"profile\" href=\"http:\/\/gmpg.org\/xfn\/11\"&gt;\\n\\t&lt;link rel=\"pingback\" href=\"http:\/\/www.oboki.net\/xmlrpc.php\"&gt;\\n\\n\\t&lt;title&gt;oboki \u2013 www.oboki.net&lt;\/title&gt;\\n&lt;link rel=\\'dns-prefetch\\' href=\\'\/\/fonts.googleapis.com\\' \/&gt;\\n&lt;link rel=\\'dns-prefetch\\' href=\\'\/\/s.w.org\\' \/&gt;\\n&lt;link rel=\"alternate\" type=\"application\/rss+xml\" title=\"oboki \u00bb \\xed\\x94\\xbc\\xeb\\x93\\x9c\" href=\"http:\/\/www.oboki.net\/?feed=rss2\" \/&gt;\\n&lt;link rel=\"alternate\" type=\"application\/rss+xml\" title=\"oboki \u00bb \\xeb\\x8c\\x93\\xea\\xb8\\x80 \\xed\\x94\\xbc\\xeb\\x93\\x9c\" href=\"http:\/\/www.oboki.net\/?feed=comments-rss2\" \/&gt;\\n\\t\\t&lt;script type=\"text\/javascript\"&gt;\\n\\t\\t\\twindow._wpemojiSettings = {\"baseUrl\":\"https:\\\\\/\\\\\/s.w.org\\\\\/images\\\\\/core\\\\\/emoji\\\\\/11\\\\\/72x72\\\\\/\",\"ext\":\".png\",\"svgUrl\":\"https:\\\\\/\\\\\/s.w.org\\\\\/images\\\\\/core\\\\\/emoji\\\\\/11\\\\\/svg\\\\\/\",\"svgExt\":\".svg\",\"source\":{\"concatemoji\":\"http:\\\\\/\\\\\/www.oboki.net\\\\\/wp-includes\\\\\/js\\\\\/wp-emoji-release.min.js?ver=4.9.8\"}};\\n\\t\\t\\t!function(a,b,c){function d(a,b){v......\n<\/code><\/pre>\n<ul>\n<li>getheaders()\n<ul>\n<li>\uc11c\ubc84\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c list \ub85c \ubc18\ud658<\/li>\n<\/ul>\n<\/li>\n<li>status<\/li>\n<li>read()\n<ul>\n<li>\uc6f9 \ud398\uc774\uc9c0\uc758 HTML \ucf54\ub4dc \ubc18\ud658<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>parse<\/h2>\n<p>\uc778\ucf54\ub529\uc744 \uac00\ub2a5\ud558\uac8c \ud574\uc90c -> \ud55c\uae00 \uac80\uc0c9\uc5b4 \uc0ac\uc6a9 \uac00\ub2a5<\/p>\n<h3>test source code<\/h3>\n<pre><code>#!\/apps\/python\/bin\/python\n\nimport urllib.parse\n\ndef append_arg():\n    arg = str(input(\"Enter: \"))\n    return \"&amp;arg=\" + arg \nprint (append_arg())\n\ndef append_arg2():\n    arg = urllib.parse.quote_plus(str(input(\"Enter: \")))\n    return \"&amp;arg=\" + arg \nprint (append_arg2())\n\ndef append_arg3():\n    arg = urllib.parse.quote_plus(str(input(\"Enter: \")))\n    return \"&amp;arg=\" + arg \nprint (append_arg3())\n<\/code><\/pre>\n<h3>result<\/h3>\n<pre><code>$ .\/parse.py \nEnter: \ud55c\uae00 \uc785\ub825\n&amp;arg=\ud55c\uae00 \uc785\ub825\nEnter: \ud55c\uae00 \uc785\ub825\n&amp;arg=%ED%95%9C%EA%B8%80+%EC%9E%85%EB%A0%A5\nEnter: \ud55c\uae00 \uc785\ub825\n&amp;arg=%ED%95%9C%EA%B8%80+%EC%9E%85%EB%A0%A5\n<\/code><\/pre>\n<p>input_query \uc5d0\uc11c\ub294 \ud55c\uae00 \uc785\ub825\uc744 \uadf8\ub300\ub85c \ucd9c\ub825\ud574\uc8fc\uc5c8\ub294\ub370,<br \/>\ninput_query2 \uc5d0\uc11c\ub294 \ud55c\uae00 \uc785\ub825\uc744 \uc6f9\uc774 \uc778\uc2dd\ud560 \uc218 \uc788\ub3c4\ub85d \ubcc0\ud658\ud574\uc90c<br \/>\nquote \ub294 \uacf5\ubc31\uc744 &#8220;%20&#8221; \ubb38\uc790\uc5f4\ub85c \ucc98\ub9ac\ud558\uace0 quote_plus\ub294 \uacf5\ubc31\uc744 &#8216;+&#8217; \uae30\ud638\ub85c \ucc98\ub9ac\ud568<\/p>\n","protected":false},"excerpt":{"rendered":"<p>urllib urllib \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud574 web \ub370\uc774\ud130\ub97c python\uc5d0\uc11c \uc190\uc27d\uac8c \ud65c\uc6a9 \uac00\ub2a5. urllib \ub0b4\uc5d0 \ucd1d 4\uac1c\uc758 \ubaa8\ub4c8\uc774 \uc874\uc7ac. request parse request \uc6f9\uc744 \uc5f4\uc5b4\uc11c \ub370\uc774\ud130 \uc77d\uc5b4\uc624\ub294 \uc5ed\ud560. \uc6f9\uc5d0\uc11c \uc5bb\uc740 \ub370\uc774\ud130 \uac1d\uccb4 \uc815\ubcf4 \uc804\ub2ec test source code #!\/apps\/python\/bin\/python import urllib.request req = urllib.request res = req.urlopen(&#8220;http:\/\/oboki.net&#8221;) print (res) ## \uc11c\ubc84 \uc815\ubcf4 \ubc18\ud658 svr = res.getheaders() for i in svr: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[34],"class_list":["post-328","post","type-post","status-publish","format-standard","hentry","category-python","tag-python"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=328"}],"version-history":[{"count":5,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/328\/revisions"}],"predecessor-version":[{"id":1252,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/328\/revisions\/1252"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}