{ "info": { "author": "DS School", "author_email": "support@dsschool.co.kr", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# scratchback\n\n\ub124\uc774\ubc84 \ub274\uc2a4\uc640 \uc778\uc2a4\ud0c0\uadf8\ub7a8\uc744 \ud06c\ub864\ub9c1\ud560 \uc218 \uc788\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4.\n\n## \uc124\uce58\n\ud504\ub86c\ud504\ud2b8(prompt) \ucc3d\uc5d0 `pip install scratchback`\uc744 \uc785\ub825\ud558\uc5ec \uc124\uce58\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n## NaverNews Crawler\n\ub124\uc774\ubc84 \ub274\uc2a4\uc5d0\uc11c\ub3c4 '\uc18d\ubcf4' \uce74\ud14c\uace0\ub9ac\uc758 \ub274\uc2a4 \uc815\ubcf4\ub4e4\uc744 \uac00\uc838\uc624\ub294 \ud06c\ub864\ub7ec\uc785\ub2c8\ub2e4. \uac00\uc838\uc624\ub294 \uc815\ubcf4\ub4e4\ub85c\ub294 `\uae30\uc0ac \uc81c\ubaa9, \uae30\uc0ac \ubcf8\ubb38, \uae30\uc0ac \ub0a0\uc9dc, \uc2e0\ubb38\uc0ac, \uae30\uc0ac id, \uae30\uc0ac url`\uac00 \uc788\uc2b5\ub2c8\ub2e4.\n\n### \ud544\uc694 \uc0ac\ud56d\n\ucd5c\uc2e0 \ubc84\uc804\uc758 Anaconda\ub97c \uc0ac\uc6a9\ud558\uace0 \uacc4\uc2dc\ub2e4\uba74 \ucd94\uac00\uc801\uc778 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc124\uce58 \uc5c6\uc774 \uc791\ub3d9\ud569\ub2c8\ub2e4.\n\n\ud558\uc9c0\ub9cc PC\uc5d0 \uad6c \ubc84\uc804\uc758 Anaconda\uac00 \uc124\uce58\ub418\uc5b4 \uc788\ub2e4\uba74 \ud504\ub86c\ud504\ud2b8 \ucc3d\uc5d0 `pip install requests`, `pip install beautifulsoup4`\ub97c \uc785\ub825\ud558\uc5ec `requests`\uc640 `beautifulsoup4`\ub97c \uc124\uce58\ud558\uc154\uc57c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. http://bit.ly/install-for-crawling \uc744 \ucc38\uace0\ud558\uc5ec \ud544\uc694 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub4e4\uc744 \uc124\uce58\ud574\uc8fc\uc138\uc694.\n### \uc0ac\uc6a9 \ubc29\ubc95\n\ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ubd88\ub7ec\uc624\ub294 \ucf54\ub4dc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.\n```python\nfrom scratchback import NaverNews\ncrawler = NaverNews()\n```\n\uc704\uc640 \uac19\uc774 `NaverNews()` \uc0dd\uc131 \uc2dc\uc5d0 \uc544\ubb34 \uac83\ub3c4 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc744 \uacbd\uc6b0 \ucf54\ub4dc \uc2e4\ud589\ud55c \ub2f9\uc77c \ub124\uc774\ubc84 \ub274\uc2a4 \uc18d\ubcf4 \uce74\ud14c\uace0\ub9ac\uc758 \uccab \ud398\uc774\uc9c0 \ub274\uc2a4 \uc815\ubcf4\ub97c \uac00\uc838\uc635\ub2c8\ub2e4.\n\n```python\ncrawler = NaverNews(page_num=3, page_start=4)\n```\n`page_num`\uacfc `page_start`\ub97c \uc9c0\uc815\ud568\uc73c\ub85c\uc368 \ub0a0\uc9dc\ubcc4\ub85c \uc5b4\ub290 \ud398\uc774\uc9c0\ubd80\ud130 \uc5bc\ub9c8\ub098 \uac00\uc838\uc62c\uc9c0\ub97c \uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9cc\uc57d `page_num`\uac12\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\ub294\ub2e4\uba74 \ub0a0\uc9dc\ubcc4\ub85c \ud558\ub098\uc758 \ud398\uc774\uc9c0\ub9cc \uac00\uc838\uc624\uba70, `page_start`\ub97c \uc815\ud558\uc9c0 \uc54a\uc73c\uba74 1\ud398\uc774\uc9c0\ubd80\ud130 \uac00\uc838\uc624\ub3c4\ub85d \uc124\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ud604\uc7ac \uc874\uc7ac\ud558\ub294 \ud398\uc774\uc9c0 \uc218 \uc774\uc0c1\uc758 \ud398\uc774\uc9c0 \uc218\ub97c \uc785\ub825\ud558\uba74 \uc874\uc7ac\ud558\ub294 \ud398\uc774\uc9c0 \uc218 \ub9cc\ud07c\uc758 \uc815\ubcf4\ub9cc \uac00\uc838\uc635\ub2c8\ub2e4. \n\n```python\ncrawler = NaverNews(page_start=4, page_end=10)\n```\n`page_num` \ub300\uc2e0 `page_end`\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc5b4\ub514\uc5d0\uc11c\ubd80\ud130 \uc5b4\ub514\uae4c\uc9c0 \uc815\ubcf4\ub97c \uac00\uc838\uc62c\uc9c0 \uc124\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9cc\uc57d `page_num`, `page_start`, `page_end`\ub97c \uc14b \ub2e4 \uc124\uc815\ud558\uc600\ub294\ub370 `page_num`\uc774 `page_end - page_start + 1`\uac12\uacfc \uc77c\uce58\ud558\uc9c0 \uc54a\uc744 \uacbd\uc6b0 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud558\ub2c8 \uc720\uc758\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. `page_start`, `page_end`\ub97c \uc9c0\uc815\ud560 \uacbd\uc6b0 `page_num`\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub429\ub2c8\ub2e4.\n\n```python\ncrawler = NaverNews(date_start=\"2019.06.14\")\n```\n\ubcc0\uc218\ub85c \ub0a0\uc9dc\ub97c \uc9c0\uc815\ud558\uc5ec \uc815\ubcf4\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc73c\uba70 \uc785\ub825\ud558\ub294 \ub0a0\uc9dc\uc758 \uc591\uc2dd\uc740 YYYY.MM.DD\ub85c, \ub2e4\ub978 \uc591\uc2dd\uc740 \uc791\ub3d9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub530\ub85c \ub0a0\uc9dc\ub97c \uc9c0\uc815\ud558\uc9c0 \uc54a\uc73c\uba74 \uc624\ub298 \ub0a0\uc9dc\ub85c \uc9c0\uc815\ub418\uace0 \ubbf8\ub798\uc758 \ub0a0\uc9dc\ub97c \uc785\ub825\ud574\ub3c4 \uc790\ub3d9\uc73c\ub85c \uc624\ub298\uc758 \ub0a0\uc9dc\ub85c \uc9c0\uc815\ub429\ub2c8\ub2e4. \ub0a0\uc9dc\ub97c \uc785\ub825\ud558\ub294 \ubcc0\uc218\ub294 `date_start`\uc640 `date_end`\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc704\uc758 \ucf54\ub4dc\uc758 \uacbd\uc6b0 2019\ub144 6\uc6d4 14\uc77c\ubd80\ud130 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\ub294 \ub0a0\uae4c\uc9c0\uc758 \ub274\uc2a4 \uc18d\ubcf4\ub97c \uac00\uc838\uc624\uba70, \uc77c\ubcc4\ub85c \ud55c \ud398\uc774\uc9c0\ub9cc\uc744 \uac00\uc838\uc624\ub294 \uae30\ub2a5\uc744 \ud569\ub2c8\ub2e4.\n```python\ncrawler = NaverNews(date_start=\"2019.06.14\", date_end=\"2019.06.16\")\n```\n`date_end` \ubcc0\uc218\ub97c \ud1b5\ud574 \uac00\uc838\uc624\uace0\uc790 \ud558\ub294 \ub0a0\uc758 \ub9c8\uc9c0\ub9c9\ub3c4 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. `date_end`\ub97c \ub530\ub85c \uc9c0\uc815\ud558\uc9c0 \uc54a\ub294 \ub2e4\uba74 \uc624\ub298 \ub0a0\uc9dc\ub85c \uc9c0\uc815\ub429\ub2c8\ub2e4. \n\n\ub9cc\uc57d 2019\ub144 6\uc6d4 14\uc77c\ubd80\ud130 6\uc6d4 16\uc77c\uae4c\uc9c0\uc758 \ub274\uc2a4 \uc18d\ubcf4\ub97c \ub0a0\uc9dc\ubcc4\ub85c 1\ud398\uc774\uc9c0\ubd80\ud130 10\ud398\uc774\uc9c0\uae4c\uc9c0 \uac00\uc838\uc624\uace0 \uc2f6\ub2e4\uba74, \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\ub97c \ud1b5\ud574 \ud06c\ub864\ub9c1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n```python\ncrawler = NaverNews(page_start=1, page_end=10, date_start=\"2019.06.14\", date_end=\"2019.06.16\")\n```\n`crawl()` \uba54\uc18c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub124\uc774\ubc84 \ub274\uc2a4 \uc18d\ubcf4 \uc815\ubcf4\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n```python\nnews_list = crawler.crawl()\n```\n\n\uacb0\uacfc\uac12\uc778 news_list\uc758 \ud615\ud0dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.\n```python\n{'headline': '[\ub0a0\uc528] \uc624\ub298 \ucd08\uc5ec\ub984 \ub354\uc704 \uc18d \uacf3\uacf3 \uc18c\ub098\uae30...\uc81c\uc8fc\ub3c4 \u00b7\ub0a8\ud574\uc548 \ube44',\n 'content': '\uc624\ub298\ub3c4 \ucd08\uc5ec\ub984 \ub354\uc704\uac00 \uc774\uc5b4\uc9c0\ub294 \uac00\uc6b4\ub370 \ub0b4\ub959 \uacf3\uacf3\uc5d0 \uc18c\ub098\uae30\uac00, \uc81c\uc8fc\ub3c4\uc640 \ub0a8\ud574\uc548\uc5d0\ub294 \ube44\uac00 \ub0b4\ub9b4 \uac83\uc73c\ub85c \ubcf4\uc785\ub2c8\ub2e4.\uae30\uc0c1\uccad\uc740 \uc624\ub298 \uc81c\uc8fc\ub3c4\uc640 \ub0a8\ud574\uc548\uc740 \ub0a8\ucabd\uc744 \uc9c0\ub098\uac00\ub294 \uae30\uc555\uace8 \uc601\ud5a5\uc73c\ub85c 5~30mm\uc758 \ube44\uac00 \uc624\uaca0\ub2e4\uace0 \ubc1d\ud614\uc2b5\ub2c8\ub2e4.\ub0b4\ub959\uc740 \ub300\uccb4\ub85c \ub9d1\uaca0\uc9c0\ub9cc, \uc601\uc11c\uc640 \uacbd\ubd81\uacfc \uc804\ubd81 \ub0b4\ub959\uc5d0\ub294 \ub300\uae30 \ubd88\uc548\uc815\uc73c\ub85c \uc624\ud6c4 \ud55c\ub54c \uc18c\ub098\uae30\uac00 \ub0b4\ub9ac\ub294 \uacf3\uc774 \uc788\uaca0\uc2b5\ub2c8\ub2e4.\uc624\ub298 \ub0ae \uae30\uc628\uc740 \uc11c\uc6b8\uacfc \ub300\uc804\u00b7\ub300\uad6c 27\ub3c4 \ub4f1 \uc5b4\uc81c\ubcf4\ub2e4 1\u223c2\ub3c4 \ub0ae\uc9c0\ub9cc, \uc5ec\uc804\ud788 \ub365\uaca0\uc2b5\ub2c8\ub2e4.[\uc800\uc791\uad8c\uc790(c) YTN & YTN PLUS \ubb34\ub2e8\uc804\uc7ac \ubc0f \uc7ac\ubc30\ud3ec \uae08\uc9c0]',\n 'written at': datetime.date(2019, 6, 14),\n 'company': 'YTN',\n 'url': 'https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=001&oid=052&aid=0001306642',\n 'title': '2\ubc88\uc9f8 \ub274\uc2a4',\n 'id': '052-0001306642'}\n```\n\ub9ac\uc2a4\ud2b8 \ub0b4\uc5d0 \uac01\uac01\uc758 \ub274\uc2a4\uc5d0 \ub300\ud55c \uc815\ubcf4\uac00 \ub515\uc154\ub108\ub9ac \ud615\ud0dc\ub85c \ub4e4\uc5b4\uc788\ub294 \ubaa8\uc2b5\uc785\ub2c8\ub2e4.\n\n\uc544\ub798\uc758 \ucf54\ub4dc\ub97c \ud1b5\ud574 \uacb0\uacfc\uac12\uc744 \ub370\uc774\ud130\ud504\ub808\uc784 \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658\ud55c \ub4a4 csv\ud30c\uc77c\ub85c \uc800\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n```python\nimport pandas as pd\ndata = pd.DataFrame(news_list)\ndata.to_csv(\"news.csv\")\n```\n\n## Instagram Crawler\n\uc778\uc2a4\ud0c0\uadf8\ub7a8 \uacc4\uc815 \uc544\uc774\ub514\ub97c \uc785\ub825\ud558\uba74 \uacc4\uc815\uc758 \uc5c5\ub85c\ub4dc\ub41c \uac8c\uc2dc\ubb3c \uc815\ubcf4\ub97c \uac00\uc838\uc624\ub294 \ud06c\ub864\ub7ec\uc785\ub2c8\ub2e4. \n\ud398\uc774\uc9c0 \ub85c\ub529\uc5d0 1\ubd84 \uc774\uc0c1 \uc18c\uc694\ub420 \uacbd\uc6b0 \ud504\ub85c\uadf8\ub7a8\uc774 \uba48\ucd94\ub3c4\ub85d \uc124\uacc4\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc778\ud130\ub137 \ud658\uacbd\uc774 \uc6d0\ud65c\ud55c \uacf3\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uac83\uc744 \uad8c\uc7a5\ub4dc\ub9bd\ub2c8\ub2e4.\n### \ud544\uc694 \uc0ac\ud56d\n\n\uc778\uc2a4\ud0c0\uadf8\ub7a8 \ud06c\ub864\ub7ec\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 selenium\uc774\ub77c\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \ud504\ub86c\ud504\ud2b8 \ucc3d\uc5d0 `pip install selenium` \uba85\ub839\uc5b4\ub97c \uc785\ub825\ud568\uc73c\ub85c selenium\uc744 \uc124\uce58\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \n\ub9cc\uc57d jupyter notebook\uc5d0\uc11c \uc124\uce58\ud558\uae30\ub97c \uc6d0\ud55c\ub2e4\uba74 `!pip install selenium`\uc744 \uc785\ub825\ud558\uace0 \uc2e4\ud589\uc2dc\ud0a4\uba74 \uc124\uce58\uac00 \uc644\ub8cc\ub429\ub2c8\ub2e4.\n\n\ub610, Chrome \ube0c\ub77c\uc6b0\uc800\ub85c \uc778\uc2a4\ud0c0\uadf8\ub7a8\uc5d0 \uc811\uadfc\ud558\uae30 \ub54c\ubb38\uc5d0, [\ub2e4\uc74c\uc758 \ub9c1\ud06c](http://chromedriver.chromium.org/downloads) \uc5d0\uc11c \ud06c\ub86c \ubc84\uc804\uc5d0 \ub9de\ub294 \ub4dc\ub77c\uc774\ubc84\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544\uc57c \ud569\ub2c8\ub2e4. \n\n\uc791\uc5c5\ud558\uace0 \uc788\ub294 PC\uc758 \ud06c\ub86c \ubc84\uc804\uc740 \uc8fc\uc18c\ucc3d\uc5d0 \ub97c \uc785\ub825\ud560 \uacbd\uc6b0 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \n\ub9e8 \uccab \uc904\uc5d0 Chrome : 75.0.3770.90\uc774\ub77c\uace0 \ub098\uc640\uc788\uc744 \uacbd\uc6b0 75 \ubc84\uc804\uc758 \ud06c\ub86c\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub294 \uac83\uc785\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n\n\uc544\ub798\uc640 \uac19\uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ubd88\ub7ec\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \n```python\nfrom scratchback import Instagram\ncrawler = Instagram()\n```\ncrawler \ubcc0\uc218 \uc0dd\uc131 \uc2dc `headless` \uc635\uc158\uc744 `False`\ub85c \uc9c0\uc815\ud558\uba74 Chrome \ube0c\ub77c\uc6b0\uc800\ub97c \ud1b5\ud574 \ud06c\ub864\ub9c1 \uc9c4\ud589 \uc0c1\ud669\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n```python\ncrawler = Instagram(headless=False)\n```\n`crawl()` \uba54\uc18c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uba74 \ud06c\ub864\ub9c1\uc744 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub54c, \uccab\ubc88\uc9f8 \uc778\uc790\uc5d0 Chrome \ub4dc\ub77c\uc774\ubc84\uc758 \uacbd\ub85c\ub97c, \ub450\ubc88\uc9f8 \uc778\uc790\ub85c\ub294 \ud06c\ub864\ub9c1\ud558\uace0\uc790 \ud558\ub294 \uacc4\uc815\uc758 \uc544\uc774\ub514\ub97c \uc785\ub825\ud574\uc8fc\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n```python\npost_list = crawler.crawl(\"chromedriver\", \"dsschoolkr\")\n```\n`posts` \uc635\uc158\uc744 \uc9c0\uc815\ud558\uba74 \uac00\uc838\uc624\ub824\uace0 \ud558\ub294 \uac8c\uc2dc\ubb3c\uc758 \uac1c\uc218\ub97c \uc870\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc640 \uac19\uc774 `posts`\ub97c 2\ub85c \uc9c0\uc815\ud560 \uacbd\uc6b0, \ud574\ub2f9 \uacc4\uc815\uc758 \uc81c\uc77c \ucd5c\uadfc \uac8c\uc2dc\ubb3c \ub450\uac1c\uc758 \uc815\ubcf4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.\n```python\npost_list = crawler.crawl(\"chromedriver\", \"dsschoolkr\", posts=2)\n```\n\uacb0\uacfc\uac12\uc778 `post_list`\uc758 \ud615\ud0dc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.\n```python\n[{'comments': '0',\n 'content': '\uc624\ub298\ubc24(6/9) 8\uc2dc \uc720\ud29c\ube0c \uc2a4\ud2b8\ub9ac\ubc0d\uc73c\ub85c \uc2a4\ud0c0\ubc85\uc2a4 1\ud638 \ub370\uc774\ud130\uc0ac\uc774\uc5b8\ud2f0\uc2a4\ud2b8\uac00 \uc9c1\uc5c5/\uc804\ub9dd/\ub370\uc774\ud130\uc640 \uad00\ub828\ub41c \uc9c8\ubb38\uc5d0 \uc9c1\uc811 \ub2f5\ubcc0\ub4dc\ub9bd\ub2c8\ub2e4 :)\ucc38\uc5ec\ubc29\ubc95\uc740 \ud504\ub85c\ud544 \uc124\uba85\uc744 \ud655\uc778\ud574\uc8fc\uc138\uc694!',\n 'img_src': ['https://scontent-icn1-1.cdninstagram.com/vp/0665d8f0404e266aa84d3d77eb919b56/5DC64220/t51.2885-15/e35/61234597_166094021086395_2911502642251464796_n.jpg?_nc_ht=scontent-icn1-1.cdninstagram.com'],\n 'like': '8',\n 'post_id': 'ByezZRLBSjV'}]\n```\n\ub9ac\uc2a4\ud2b8 \ub0b4\uc5d0 \uac01\uac01\uc758 \uac8c\uc2dc\ubb3c\uc5d0 \ub300\ud55c \uc815\ubcf4\uac00 \ub515\uc154\ub108\ub9ac \ud615\ud0dc\ub85c \ub4e4\uc5b4\uc788\ub294 \ubaa8\uc2b5\uc785\ub2c8\ub2e4.\n\n`post_id`\ub294 \uac8c\uc2dc\ubb3c\uc758 \uace0\uc720 id\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. `img_src`\uc5d0\ub294 \uc774\ubbf8\uc9c0 \ud639\uc740 \ub3d9\uc601\uc0c1\uc758 url \uc815\ubcf4\uac00 \ub9ac\uc2a4\ud2b8 \ud615\ud0dc\ub85c \ub2f4\uaca8\uc788\uc73c\uba70, `content`\uc5d0\ub294 \uac8c\uc2dc\ubb3c\uc5d0 \uc791\uc131\ub41c \ubb38\uad6c\uac00 \ub2f4\uaca8\uc788\uc2b5\ub2c8\ub2e4. `like`\ub294 \uac8c\uc2dc\ubb3c \uc88b\uc544\uc694 \uac1c\uc218, `comments`\ub294 \uac8c\uc2dc\ubb3c\uc5d0 \ub2ec\ub9b0 \ub313\uae00\uc758 \uac1c\uc218\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4.\n\n\uc544\ub798\uc758 \ucf54\ub4dc\ub97c \ud1b5\ud574 \uacb0\uacfc\uac12\uc744 \ub370\uc774\ud130\ud504\ub808\uc784 \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658\ud558\uace0 csv\ud30c\uc77c\ub85c \uc800\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n```python\nimport pandas as pd\ndata = pd.DataFrame(post_list)\ndata.to_csv(\"post.csv\")\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/shaynekang/scratchback", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "scratchback", "package_url": "https://pypi.org/project/scratchback/", "platform": "", "project_url": "https://pypi.org/project/scratchback/", "project_urls": { "Homepage": "https://github.com/shaynekang/scratchback" }, "release_url": "https://pypi.org/project/scratchback/0.2/", "requires_dist": null, "requires_python": "", "summary": "Crawler for Proggraming Course", "version": "0.2" }, "last_serial": 5404594, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "e958d2083a58c2eaad1ae55b55cf9401", "sha256": "69dddebee5957805f5a39ae4820beb75de5faa43f0359fccad3932b158294a0d" }, "downloads": -1, "filename": "scratchback-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e958d2083a58c2eaad1ae55b55cf9401", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9540, "upload_time": "2019-06-15T18:12:12", "url": "https://files.pythonhosted.org/packages/c3/0a/eaffce0bbc2053d8b32a41129a4f294bdc0c58a426f9196fc5fc57750f9e/scratchback-0.1-py3-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "3312d3573b5124cee8b9296f0a2236f7", "sha256": "6c9f9e0f1af6141c9d1144829e0d421e0d482719d8c4f7d18c2257285f95c6ae" }, "downloads": -1, "filename": "scratchback-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3312d3573b5124cee8b9296f0a2236f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10372, "upload_time": "2019-06-15T18:55:54", "url": "https://files.pythonhosted.org/packages/e9/b2/642d148a2977782e431467a1fc7a7658a2f1662a12c6d56ac0cc5d61cde7/scratchback-0.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3312d3573b5124cee8b9296f0a2236f7", "sha256": "6c9f9e0f1af6141c9d1144829e0d421e0d482719d8c4f7d18c2257285f95c6ae" }, "downloads": -1, "filename": "scratchback-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3312d3573b5124cee8b9296f0a2236f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10372, "upload_time": "2019-06-15T18:55:54", "url": "https://files.pythonhosted.org/packages/e9/b2/642d148a2977782e431467a1fc7a7658a2f1662a12c6d56ac0cc5d61cde7/scratchback-0.2-py3-none-any.whl" } ] }