Last active
January 6, 2024 00:46
-
-
Save jerryan999/79bb451d13c3b4e37009a642454cb464 to your computer and use it in GitHub Desktop.
Given tag name, this script starts to crawl tag related post in the medium archive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 118, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import pymongo\n", | |
| "import pandas as pd\n", | |
| "import numpy as np \n", | |
| "import seaborn as sns\n", | |
| "sns.set(style=\"darkgrid\")\n", | |
| "\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "%matplotlib inline " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "client = pymongo.MongoClient()\n", | |
| "db = client['medium']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 315, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "tag_interest = \"Data Science\"" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 316, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "users = [doc for doc in db.User.find()]\n", | |
| "posts = [doc for doc in db.Post.find({\"detectedLanguage\":\"en\",\n", | |
| " 'virtuals.tags.name': tag_interest})]\n", | |
| "collections = [doc for doc in db.Collection.find()]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Preprocess" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 317, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "df_posts = pd.DataFrame(posts)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 318, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# add some columns in top level\n", | |
| "# from vituals field\n", | |
| "for f in [\"wordCount\",\"readingTime\",\"subtitle\",\"totalClapCount\",\"recommends\",\n", | |
| " \"responsesCreatedCount\",\"sectionCount\",\"socialRecommendsCount\"]:\n", | |
| " df_posts[f] = df_posts.virtuals.apply(lambda x:x[f])\n", | |
| "\n", | |
| "# from users \n", | |
| "lookup_users = {u['userId']:u for u in users}\n", | |
| "lookup_collections = {c['id']:c for c in collections}\n", | |
| "\n", | |
| "df_posts['username'] = df_posts.creatorId.apply(lambda x:lookup_users[x]['username'])\n", | |
| "df_posts['user_bio'] = df_posts.creatorId.apply(lambda x:lookup_users[x]['bio'])\n", | |
| "df_posts['isWriterProgramEnrolled'] = df_posts.creatorId.apply(lambda x:lookup_users[x]['isWriterProgramEnrolled'])\n", | |
| "df_posts['user_type'] = df_posts.creatorId.apply(lambda x:lookup_users[x]['type'])\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Exploratory Data Analysis" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Top Post" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "- What's the top posts based on *totalClapCount*? \n", | |
| "- Ten claps is good enough?\n", | |
| "- What's the average word count and average reading time?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 319, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>title</th>\n", | |
| " <th>slug</th>\n", | |
| " <th>uniqueSlug</th>\n", | |
| " <th>subtitle</th>\n", | |
| " <th>wordCount</th>\n", | |
| " <th>readingTime</th>\n", | |
| " <th>totalClapCount</th>\n", | |
| " <th>username</th>\n", | |
| " <th>user_bio</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>6859</th>\n", | |
| " <td>Artificial Intelligence — The Revolution Hasn’...</td>\n", | |
| " <td>artificial-intelligence-the-revolution-hasnt-h...</td>\n", | |
| " <td>artificial-intelligence-the-revolution-hasnt-h...</td>\n", | |
| " <td>Artificial Intelligence (AI) is the mantra of ...</td>\n", | |
| " <td>3989</td>\n", | |
| " <td>15.252830</td>\n", | |
| " <td>50806</td>\n", | |
| " <td>mijordan3</td>\n", | |
| " <td>Michael I. Jordan is a Professor in the Depart...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5962</th>\n", | |
| " <td>Why so many data scientists are leaving their ...</td>\n", | |
| " <td>why-so-many-data-scientists-are-leaving-their-...</td>\n", | |
| " <td>why-so-many-data-scientists-are-leaving-their-...</td>\n", | |
| " <td>Frustrations of the data scientist!</td>\n", | |
| " <td>1689</td>\n", | |
| " <td>7.206918</td>\n", | |
| " <td>47057</td>\n", | |
| " <td>jonnybrooks04</td>\n", | |
| " <td>Data scientist at Deliveroo, public speaker, s...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9426</th>\n", | |
| " <td>What exactly can you do with Python? Here are ...</td>\n", | |
| " <td>what-can-you-do-with-python-the-3-main-applica...</td>\n", | |
| " <td>what-can-you-do-with-python-the-3-main-applica...</td>\n", | |
| " <td>The most common applications of Python are: we...</td>\n", | |
| " <td>2310</td>\n", | |
| " <td>9.666981</td>\n", | |
| " <td>42562</td>\n", | |
| " <td>ykdojo</td>\n", | |
| " <td>YouTuber at CS Dojo / Podcaster at Towards Dat...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7926</th>\n", | |
| " <td>How to build your own Neural Network from scra...</td>\n", | |
| " <td>how-to-build-your-own-neural-network-from-scra...</td>\n", | |
| " <td>how-to-build-your-own-neural-network-from-scra...</td>\n", | |
| " <td>A beginner’s guide to understanding the inner ...</td>\n", | |
| " <td>1247</td>\n", | |
| " <td>6.055660</td>\n", | |
| " <td>41018</td>\n", | |
| " <td>jamesloyys</td>\n", | |
| " <td>M.Sc. in CS (Machine Learning) @ Georgia Tech</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2738</th>\n", | |
| " <td>30 Amazing Machine Learning Projects for the P...</td>\n", | |
| " <td>30-amazing-machine-learning-projects-for-the-p...</td>\n", | |
| " <td>30-amazing-machine-learning-projects-for-the-p...</td>\n", | |
| " <td>For the past year, we’ve compared nearly 8,800...</td>\n", | |
| " <td>895</td>\n", | |
| " <td>5.927358</td>\n", | |
| " <td>24039</td>\n", | |
| " <td>Mybridge</td>\n", | |
| " <td>We rank articles for professionals</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " title \\\n", | |
| "6859 Artificial Intelligence — The Revolution Hasn’... \n", | |
| "5962 Why so many data scientists are leaving their ... \n", | |
| "9426 What exactly can you do with Python? Here are ... \n", | |
| "7926 How to build your own Neural Network from scra... \n", | |
| "2738 30 Amazing Machine Learning Projects for the P... \n", | |
| "\n", | |
| " slug \\\n", | |
| "6859 artificial-intelligence-the-revolution-hasnt-h... \n", | |
| "5962 why-so-many-data-scientists-are-leaving-their-... \n", | |
| "9426 what-can-you-do-with-python-the-3-main-applica... \n", | |
| "7926 how-to-build-your-own-neural-network-from-scra... \n", | |
| "2738 30-amazing-machine-learning-projects-for-the-p... \n", | |
| "\n", | |
| " uniqueSlug \\\n", | |
| "6859 artificial-intelligence-the-revolution-hasnt-h... \n", | |
| "5962 why-so-many-data-scientists-are-leaving-their-... \n", | |
| "9426 what-can-you-do-with-python-the-3-main-applica... \n", | |
| "7926 how-to-build-your-own-neural-network-from-scra... \n", | |
| "2738 30-amazing-machine-learning-projects-for-the-p... \n", | |
| "\n", | |
| " subtitle wordCount \\\n", | |
| "6859 Artificial Intelligence (AI) is the mantra of ... 3989 \n", | |
| "5962 Frustrations of the data scientist! 1689 \n", | |
| "9426 The most common applications of Python are: we... 2310 \n", | |
| "7926 A beginner’s guide to understanding the inner ... 1247 \n", | |
| "2738 For the past year, we’ve compared nearly 8,800... 895 \n", | |
| "\n", | |
| " readingTime totalClapCount username \\\n", | |
| "6859 15.252830 50806 mijordan3 \n", | |
| "5962 7.206918 47057 jonnybrooks04 \n", | |
| "9426 9.666981 42562 ykdojo \n", | |
| "7926 6.055660 41018 jamesloyys \n", | |
| "2738 5.927358 24039 Mybridge \n", | |
| "\n", | |
| " user_bio \n", | |
| "6859 Michael I. Jordan is a Professor in the Depart... \n", | |
| "5962 Data scientist at Deliveroo, public speaker, s... \n", | |
| "9426 YouTuber at CS Dojo / Podcaster at Towards Dat... \n", | |
| "7926 M.Sc. in CS (Machine Learning) @ Georgia Tech \n", | |
| "2738 We rank articles for professionals " | |
| ] | |
| }, | |
| "execution_count": 319, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "top_posts = df_posts[['title','slug','uniqueSlug','subtitle','wordCount',\n", | |
| " 'readingTime','totalClapCount','username','user_bio']].sort_values(['totalClapCount'],\n", | |
| " ascending=False)\n", | |
| "top_posts.head(n=5)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 320, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "def assign_clapbin(claps):\n", | |
| " if claps < 10:\n", | |
| " return \"[0-9]\"\n", | |
| " elif claps < 100:\n", | |
| " return \"[10-99]\"\n", | |
| " else:\n", | |
| " return \"[100-210k]\"\n", | |
| "\n", | |
| "top_posts['ClapBin'] = top_posts.totalClapCount.apply(assign_clapbin)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 335, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# 只看鼓掌超过1500的\n", | |
| "top_posts[top_posts['totalClapCount']>=1500][['title','subtitle','slug','uniqueSlug','wordCount','readingTime','totalClapCount','username','user_bio']].to_csv(\"posts.csv\",encoding='utf-8')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 321, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "count 57346.000000\n", | |
| "mean 167.025233\n", | |
| "std 772.268616\n", | |
| "min 0.000000\n", | |
| "25% 0.000000\n", | |
| "50% 15.000000\n", | |
| "75% 104.000000\n", | |
| "90% 341.500000\n", | |
| "95% 651.000000\n", | |
| "97% 999.300000\n", | |
| "97.5% 1149.375000\n", | |
| "99% 2493.100000\n", | |
| "max 50806.000000\n", | |
| "Name: totalClapCount, dtype: float64" | |
| ] | |
| }, | |
| "execution_count": 321, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "top_posts.totalClapCount.describe([0.25,0.5,0.75,0.9,0.95,0.97, 0.975, 0.99])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 322, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x119afcda0>" | |
| ] | |
| }, | |
| "execution_count": 322, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x118188c18>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.countplot(top_posts['ClapBin'])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 323, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "[0-9] 0.458846\n", | |
| "[10-99] 0.280490\n", | |
| "[100-210k] 0.260663\n", | |
| "Name: ClapBin, dtype: float64" | |
| ] | |
| }, | |
| "execution_count": 323, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "top_posts.ClapBin.value_counts(normalize=True)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "If your post receive 10 claps, congratulations! 58.5 percent of posts have fallen behind your post.\n", | |
| "\n", | |
| "Ten claps means above average, 100 claps deserve a bottle of champagne (82%)\n", | |
| "\n", | |
| "If Your post receive more than 1000 claps, it is better than 97 percent of posts \n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 324, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<seaborn.axisgrid.FacetGrid at 0x1183d8a20>" | |
| ] | |
| }, | |
| "execution_count": 324, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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2zL6D10iYrEYU6a8yxtvvIKvay6F53T7UunhwMfWp4bii3q2+BjBbbXULqngpJP68KN/+ymdOrV+ADuVysoK2/SXVgO4nR04cICXX36RJUsW4sntTKD76IRWNWtNewcwQCwaJljxBaF9hpKSztx22x0MHfqls747nP37q3jnnTeYM2c2AY+LKwcUMKJrTptGoZO+qGJ91aF648ASP98e2rZf9lgsxqLyBmZsriOKi0svvZxrr72egoLMXmKxJZFIhJdffpHZs2fi751PwZlluDxf/mPYWgADNO2qp27RHoqLOvHjH/0nvXqlz1LgGsCt60cSAjgWi7FgwTxefvklGhoa2mXUGy8ZAdws0rCXYPliIsEDnH/+RXzrW98mPz9910s+mtraWmbM+ICpH7xHKBRiVI9cLu6Tf1y13heW72PLgdDB232Lfdw2vPNx9as6GGH21jo+391Abk4uV19zPWPGjCM39+iL/mSSAwf28/zzf2LFimXkDOpE3mklR/1jmEgAA4SrgtTO343P5WX8HfcwcuQZaVHm0QBuXT/aOYBraqp57rk/sXz553hyuxDoMQpP4NgHFtqqbuMH+F2NXH755UybNo2mWA75A65st8ePRSM07V1J077VFBYUMX78XR1mNFxVVcW0ae8ze/Z0gsEmhpQGGNe/IKHTio+mPQO42e66MNM31bC+qom83DzGjruCceOuoLCwqPWdO6CmpiamTXuf9yb/nVCoibzhpeQMOPZrTTSAASL1IWrn7yF8IMippw7lW9/6F3r3bvtCVu1JA7h1/WjHAN60aSP/93+Ps//Afvxlw/GVnJKUGQ6169/l2qvGMn78eJ555hne+2AWBQOvbffniTRWESxfSKTxAF/72te5+urrcLvTc7JMRcUe3n//H8yb+xGRaIShXXK44KS8Y65mlqhkBHCz7TUh5m6rY01lEL/Px0UXj+Wqq66lpCS96pnHKxaLsXDhfF5/469U7duHv0c+ecM64ylo/efSlgAGiEVjNG6spnHNfmKhKBdddAnXX38jxcXtOwBKlAZw6/rRTgE8f/5cnn/hGXAHCPQ8H09u+/yCtqR5BHzZZZcxffr0dh8Bx4tFwzSWLyZcvYXhw0/n7rt/iN9/YosEtac9e3YzefLfmTfvY9zEGNk1h/N659H5BEa8R0pmADerqA8zd1sdKyqCuD0eLr54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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x118411828>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.catplot(x='ClapBin',y=\"wordCount\",data=top_posts, kind='violin')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 325, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<seaborn.axisgrid.FacetGrid at 0x11404d438>" | |
| ] | |
| }, | |
| "execution_count": 325, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x114049908>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.catplot(x='ClapBin',y=\"readingTime\",data=top_posts, kind='violin')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Average word count and average reading time is 1500 and 5 mins, respectively\n", | |
| "\n", | |
| "There is no much difference between word count and totalClapCount" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Tag" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 326, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "tags = []\n", | |
| "for p in posts:\n", | |
| " if \"virtuals\" in p and 'tags' in p['virtuals']:\n", | |
| " for t in p['virtuals']['tags']:\n", | |
| " tags.append(t)\n", | |
| " \n", | |
| "df_tags = pd.DataFrame(tags)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 327, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# dedup\n", | |
| "df_tags.drop_duplicates(subset=['slug','name'],inplace=True)\n", | |
| "\n", | |
| "# drop useless column\n", | |
| "df_tags.drop(['metadata','type'],axis=1,inplace=True)\n", | |
| "\n", | |
| "# sort\n", | |
| "df_tags.sort_values(['postCount'],ascending=False,inplace=True)\n", | |
| "\n", | |
| "df_tags.reset_index(inplace=True,drop=True)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 328, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>slug</th>\n", | |
| " <th>name</th>\n", | |
| " <th>postCount</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>startup</td>\n", | |
| " <td>Startup</td>\n", | |
| " <td>391142</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>blockchain</td>\n", | |
| " <td>Blockchain</td>\n", | |
| " <td>364815</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>life</td>\n", | |
| " <td>Life</td>\n", | |
| " <td>348365</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>life-lessons</td>\n", | |
| " <td>Life Lessons</td>\n", | |
| " <td>314796</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>politics</td>\n", | |
| " <td>Politics</td>\n", | |
| " <td>302991</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td>poetry</td>\n", | |
| " <td>Poetry</td>\n", | |
| " <td>299349</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>seo</td>\n", | |
| " <td>SEO</td>\n", | |
| " <td>285150</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>travel</td>\n", | |
| " <td>Travel</td>\n", | |
| " <td>275250</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>entrepreneurship</td>\n", | |
| " <td>Entrepreneurship</td>\n", | |
| " <td>268533</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>education</td>\n", | |
| " <td>Education</td>\n", | |
| " <td>257122</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " slug name postCount\n", | |
| "0 startup Startup 391142\n", | |
| "1 blockchain Blockchain 364815\n", | |
| "2 life Life 348365\n", | |
| "3 life-lessons Life Lessons 314796\n", | |
| "4 politics Politics 302991\n", | |
| "5 poetry Poetry 299349\n", | |
| "6 seo SEO 285150\n", | |
| "7 travel Travel 275250\n", | |
| "8 entrepreneurship Entrepreneurship 268533\n", | |
| "9 education Education 257122" | |
| ] | |
| }, | |
| "execution_count": 328, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df_tags.head(n=10)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 337, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "df_tags[df_tags.postCount>1000].to_csv(\"tags.csv\",encoding='utf-8')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Topics" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 338, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "topics = []\n", | |
| "for p in posts:\n", | |
| " if \"virtuals\" in p and 'topics' in p['virtuals']:\n", | |
| " for t in p['virtuals']['topics']:\n", | |
| " topics.append(t)\n", | |
| " \n", | |
| "df_topics = pd.DataFrame(topics)\n", | |
| "\n", | |
| "df_topics.drop_duplicates(subset=['slug','topicId'],inplace=True)\n", | |
| "\n", | |
| "df_topics.sort_values(['createdAt'],inplace=True)\n", | |
| "\n", | |
| "df_topics.reset_index(drop=True,inplace=True)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 339, | |
| "metadata": { | |
| "scrolled": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>topicId</th>\n", | |
| " <th>slug</th>\n", | |
| " <th>createdAt</th>\n", | |
| " <th>deletedAt</th>\n", | |
| " <th>image</th>\n", | |
| " <th>name</th>\n", | |
| " <th>description</th>\n", | |
| " <th>relatedTopics</th>\n", | |
| " <th>visibility</th>\n", | |
| " <th>relatedTags</th>\n", | |
| " <th>relatedTopicIds</th>\n", | |
| " <th>type</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>90</th>\n", | |
| " <td>ca00a0701472</td>\n", | |
| " <td>outdoors</td>\n", | |
| " <td>1563396390225</td>\n", | |
| " <td>0</td>\n", | |
| " <td>{'id': '1*[email protected]', 'or...</td>\n", | |
| " <td>Outdoors</td>\n", | |
| " <td>Into the great wide open.</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>1</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>Topic</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>91</th>\n", | |
| " <td>34e2a09fdb28</td>\n", | |
| " <td>fitness</td>\n", | |
| " <td>1563398313265</td>\n", | |
| " <td>0</td>\n", | |
| " <td>{'id': '1*[email protected]', 'or...</td>\n", | |
| " <td>Fitness</td>\n", | |
| " <td>No pain no gains.</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>1</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>Topic</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>92</th>\n", | |
| " <td>3be109cfd3be</td>\n", | |
| " <td>biotech</td>\n", | |
| " <td>1563820846786</td>\n", | |
| " <td>0</td>\n", | |
| " <td>{'id': '1*[email protected]', 'or...</td>\n", | |
| " <td>Biotech</td>\n", | |
| " <td>Genetically predisposed.</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>1</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>Topic</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>93</th>\n", | |
| " <td>e6d44cf5196e</td>\n", | |
| " <td>makers</td>\n", | |
| " <td>1563822557220</td>\n", | |
| " <td>0</td>\n", | |
| " <td>{'id': '1*[email protected]', 'or...</td>\n", | |
| " <td>Makers</td>\n", | |
| " <td>For those who do.</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>1</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>Topic</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>94</th>\n", | |
| " <td>6158eb913466</td>\n", | |
| " <td>coronavirus</td>\n", | |
| " <td>1583259171963</td>\n", | |
| " <td>0</td>\n", | |
| " <td>{'id': '1*[email protected]', 'or...</td>\n", | |
| " <td>Coronavirus</td>\n", | |
| " <td>The latest news about the 2020 coronavirus and...</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>1</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>[]</td>\n", | |
| " <td>Topic</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " topicId slug createdAt deletedAt \\\n", | |
| "90 ca00a0701472 outdoors 1563396390225 0 \n", | |
| "91 34e2a09fdb28 fitness 1563398313265 0 \n", | |
| "92 3be109cfd3be biotech 1563820846786 0 \n", | |
| "93 e6d44cf5196e makers 1563822557220 0 \n", | |
| "94 6158eb913466 coronavirus 1583259171963 0 \n", | |
| "\n", | |
| " image name \\\n", | |
| "90 {'id': '1*[email protected]', 'or... Outdoors \n", | |
| "91 {'id': '1*[email protected]', 'or... Fitness \n", | |
| "92 {'id': '1*[email protected]', 'or... Biotech \n", | |
| "93 {'id': '1*[email protected]', 'or... Makers \n", | |
| "94 {'id': '1*[email protected]', 'or... Coronavirus \n", | |
| "\n", | |
| " description relatedTopics \\\n", | |
| "90 Into the great wide open. [] \n", | |
| "91 No pain no gains. [] \n", | |
| "92 Genetically predisposed. [] \n", | |
| "93 For those who do. [] \n", | |
| "94 The latest news about the 2020 coronavirus and... [] \n", | |
| "\n", | |
| " visibility relatedTags relatedTopicIds type \n", | |
| "90 1 [] [] Topic \n", | |
| "91 1 [] [] Topic \n", | |
| "92 1 [] [] Topic \n", | |
| "93 1 [] [] Topic \n", | |
| "94 1 [] [] Topic " | |
| ] | |
| }, | |
| "execution_count": 339, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df_topics.tail()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 340, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "df_topics[['name','description']].to_csv(\"topics.csv\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Writer" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "- top 10 growth-hacking writer" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 341, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "top_writers = df_posts.groupby('creatorId').size().nlargest(30)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 342, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "df_writer = pd.DataFrame(top_writers,columns=['count'])\n", | |
| "df_writer.reset_index(inplace=True)\n", | |
| "\n", | |
| "df_writer['username'] = df_writer.creatorId.apply(lambda x:lookup_users[x]['username'])\n", | |
| "df_writer['bio'] = df_writer.creatorId.apply(lambda x:lookup_users[x]['bio'])\n", | |
| "df_writer['twitterScreenName'] = df_writer.creatorId.apply(lambda x:lookup_users[x]['twitterScreenName'])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 343, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>creatorId</th>\n", | |
| " <th>count</th>\n", | |
| " <th>username</th>\n", | |
| " <th>bio</th>\n", | |
| " <th>twitterScreenName</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>2b9d62538208</td>\n", | |
| " <td>647</td>\n", | |
| " <td>ODSC</td>\n", | |
| " <td>Our passion is bringing thousands of the best ...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>46674a2c9422</td>\n", | |
| " <td>246</td>\n", | |
| " <td>jrodthoughts</td>\n", | |
| " <td>Chief Scientist, Managing Partner at Invector ...</td>\n", | |
| " <td>jrdothoughts</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>d8b99ba6ec83</td>\n", | |
| " <td>143</td>\n", | |
| " <td>rinu.gour123</td>\n", | |
| " <td>Data Science Enthusiast | Research writer | Bl...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>880781a85c2</td>\n", | |
| " <td>125</td>\n", | |
| " <td>NYUDataScience</td>\n", | |
| " <td>Official account of the Center for Data Scienc...</td>\n", | |
| " <td>NYUDataScience</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>aff72a0c1243</td>\n", | |
| " <td>116</td>\n", | |
| " <td>sh.tsang</td>\n", | |
| " <td>PhD, Researcher. I share what I've learnt and ...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td>6264ceea3dd4</td>\n", | |
| " <td>115</td>\n", | |
| " <td>Corsairs</td>\n", | |
| " <td>Articles that engage, educate, and entertain t...</td>\n", | |
| " <td>CorsairsIn</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>e2f299e30cb9</td>\n", | |
| " <td>103</td>\n", | |
| " <td>williamkoehrsen</td>\n", | |
| " <td>Data Scientist at Cortex Intel, Data Science C...</td>\n", | |
| " <td>koehrsen_will</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>1335786e6357</td>\n", | |
| " <td>94</td>\n", | |
| " <td>YvesMulkers</td>\n", | |
| " <td>BI And Data Architect enjoying Family, Social ...</td>\n", | |
| " <td>YvesMulkers</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>41338000425f</td>\n", | |
| " <td>93</td>\n", | |
| " <td>ibelmopan</td>\n", | |
| " <td>ML and NLP Research Scientist | Ph.D. | Twitte...</td>\n", | |
| " <td>omarsar0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>e8cce06956c9</td>\n", | |
| " <td>91</td>\n", | |
| " <td>rahul_agarwal</td>\n", | |
| " <td>Bridging the gap between Data Science and Intu...</td>\n", | |
| " <td>MLWhiz</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>4acc091611c9</td>\n", | |
| " <td>90</td>\n", | |
| " <td>Cambridge_Spark</td>\n", | |
| " <td>Data Science Specialists</td>\n", | |
| " <td>CambridgeSpark</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>11</th>\n", | |
| " <td>bd51f1a63813</td>\n", | |
| " <td>90</td>\n", | |
| " <td>jonathan_hui</td>\n", | |
| " <td>Deep Learning</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <td>e960cfb4e73c</td>\n", | |
| " <td>84</td>\n", | |
| " <td>365datascience</td>\n", | |
| " <td>https://365datascience.com is an educational c...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <td>41cd8f154e82</td>\n", | |
| " <td>83</td>\n", | |
| " <td>SeattleDataGuy</td>\n", | |
| " <td>#Data #Engineer, Strategy Development Consulta...</td>\n", | |
| " <td>SeattleDataGuy</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>14</th>\n", | |
| " <td>825fa70f9e24</td>\n", | |
| " <td>83</td>\n", | |
| " <td>vimarshk</td>\n", | |
| " <td>Engineering Manager | Editor/Founder of Acing AI</td>\n", | |
| " <td>VimarshApi</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>15</th>\n", | |
| " <td>60b579a69a7a</td>\n", | |
| " <td>82</td>\n", | |
| " <td>analyticbridge</td>\n", | |
| " <td>Data science pioneer, founder, entrepreneur, i...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>16</th>\n", | |
| " <td>88be7c24b7fd</td>\n", | |
| " <td>81</td>\n", | |
| " <td>nilimeshhalder</td>\n", | |
| " <td></td>\n", | |
| " <td>SETScholarsInfo</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <td>d9b237bc89f0</td>\n", | |
| " <td>81</td>\n", | |
| " <td>farhadmalik</td>\n", | |
| " <td>My personal blog, aiming to explain complex ma...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>18</th>\n", | |
| " <td>47a07cc4eb4e</td>\n", | |
| " <td>80</td>\n", | |
| " <td>magnimind</td>\n", | |
| " <td>Let’s change the world by acquiring AI and Mac...</td>\n", | |
| " <td>MagnimindA</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <td>1bfa80768afa</td>\n", | |
| " <td>79</td>\n", | |
| " <td>kanaugust</td>\n", | |
| " <td>CEO / Founder at Exploratory(https://explorato...</td>\n", | |
| " <td>KanAugust</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>20</th>\n", | |
| " <td>88e3e673aa8b</td>\n", | |
| " <td>79</td>\n", | |
| " <td>pchojecki</td>\n", | |
| " <td>AI entrepreneur with a PhD in mathematics, For...</td>\n", | |
| " <td>prz_chojecki</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>21</th>\n", | |
| " <td>ba547bff904f</td>\n", | |
| " <td>78</td>\n", | |
| " <td>makcedward</td>\n", | |
| " <td>Focus in Natural Language Processing, Data Sci...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>22</th>\n", | |
| " <td>afde3432bf28</td>\n", | |
| " <td>76</td>\n", | |
| " <td>posey</td>\n", | |
| " <td>Founder @ Spawner.ai. Formerly AI @ P&G. 👨🏻💻 ...</td>\n", | |
| " <td>PoseysThumbs</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>23</th>\n", | |
| " <td>e8ec6fa4d7d4</td>\n", | |
| " <td>73</td>\n", | |
| " <td>faviovazquez</td>\n", | |
| " <td>Data scientist, physicist and computer enginee...</td>\n", | |
| " <td>FavioVaz</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>24</th>\n", | |
| " <td>3a025d440e6b</td>\n", | |
| " <td>68</td>\n", | |
| " <td>benjaminobi</td>\n", | |
| " <td>Physicist, Data Science Educator, Writer. Inte...</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>25</th>\n", | |
| " <td>d2ef7f5ede53</td>\n", | |
| " <td>66</td>\n", | |
| " <td>jhsu98</td>\n", | |
| " <td>I love to share my experiences learning to cod...</td>\n", | |
| " <td>jhsu98</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>26</th>\n", | |
| " <td>370952daf49</td>\n", | |
| " <td>65</td>\n", | |
| " <td>OpexAnalytics</td>\n", | |
| " <td>Author of The Opex Analytics Blog.</td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>27</th>\n", | |
| " <td>ddc8f44ec90</td>\n", | |
| " <td>65</td>\n", | |
| " <td>anebellyliza45</td>\n", | |
| " <td></td>\n", | |
| " <td></td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>28</th>\n", | |
| " <td>2fccb851bb5e</td>\n", | |
| " <td>64</td>\n", | |
| " <td>kozyrkov</td>\n", | |
| " <td>Head of Decision Intelligence, Google. ❤️ Stat...</td>\n", | |
| " <td>quaesita</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>29</th>\n", | |
| " <td>e2af5c8737ec</td>\n", | |
| " <td>63</td>\n", | |
| " <td>george.seif94</td>\n", | |
| " <td>Certified Nerd</td>\n", | |
| " <td>GeorgeSeif94</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " creatorId count username \\\n", | |
| "0 2b9d62538208 647 ODSC \n", | |
| "1 46674a2c9422 246 jrodthoughts \n", | |
| "2 d8b99ba6ec83 143 rinu.gour123 \n", | |
| "3 880781a85c2 125 NYUDataScience \n", | |
| "4 aff72a0c1243 116 sh.tsang \n", | |
| "5 6264ceea3dd4 115 Corsairs \n", | |
| "6 e2f299e30cb9 103 williamkoehrsen \n", | |
| "7 1335786e6357 94 YvesMulkers \n", | |
| "8 41338000425f 93 ibelmopan \n", | |
| "9 e8cce06956c9 91 rahul_agarwal \n", | |
| "10 4acc091611c9 90 Cambridge_Spark \n", | |
| "11 bd51f1a63813 90 jonathan_hui \n", | |
| "12 e960cfb4e73c 84 365datascience \n", | |
| "13 41cd8f154e82 83 SeattleDataGuy \n", | |
| "14 825fa70f9e24 83 vimarshk \n", | |
| "15 60b579a69a7a 82 analyticbridge \n", | |
| "16 88be7c24b7fd 81 nilimeshhalder \n", | |
| "17 d9b237bc89f0 81 farhadmalik \n", | |
| "18 47a07cc4eb4e 80 magnimind \n", | |
| "19 1bfa80768afa 79 kanaugust \n", | |
| "20 88e3e673aa8b 79 pchojecki \n", | |
| "21 ba547bff904f 78 makcedward \n", | |
| "22 afde3432bf28 76 posey \n", | |
| "23 e8ec6fa4d7d4 73 faviovazquez \n", | |
| "24 3a025d440e6b 68 benjaminobi \n", | |
| "25 d2ef7f5ede53 66 jhsu98 \n", | |
| "26 370952daf49 65 OpexAnalytics \n", | |
| "27 ddc8f44ec90 65 anebellyliza45 \n", | |
| "28 2fccb851bb5e 64 kozyrkov \n", | |
| "29 e2af5c8737ec 63 george.seif94 \n", | |
| "\n", | |
| " bio twitterScreenName \n", | |
| "0 Our passion is bringing thousands of the best ... \n", | |
| "1 Chief Scientist, Managing Partner at Invector ... jrdothoughts \n", | |
| "2 Data Science Enthusiast | Research writer | Bl... \n", | |
| "3 Official account of the Center for Data Scienc... NYUDataScience \n", | |
| "4 PhD, Researcher. I share what I've learnt and ... \n", | |
| "5 Articles that engage, educate, and entertain t... CorsairsIn \n", | |
| "6 Data Scientist at Cortex Intel, Data Science C... koehrsen_will \n", | |
| "7 BI And Data Architect enjoying Family, Social ... YvesMulkers \n", | |
| "8 ML and NLP Research Scientist | Ph.D. | Twitte... omarsar0 \n", | |
| "9 Bridging the gap between Data Science and Intu... MLWhiz \n", | |
| "10 Data Science Specialists CambridgeSpark \n", | |
| "11 Deep Learning \n", | |
| "12 https://365datascience.com is an educational c... \n", | |
| "13 #Data #Engineer, Strategy Development Consulta... SeattleDataGuy \n", | |
| "14 Engineering Manager | Editor/Founder of Acing AI VimarshApi \n", | |
| "15 Data science pioneer, founder, entrepreneur, i... \n", | |
| "16 SETScholarsInfo \n", | |
| "17 My personal blog, aiming to explain complex ma... \n", | |
| "18 Let’s change the world by acquiring AI and Mac... MagnimindA \n", | |
| "19 CEO / Founder at Exploratory(https://explorato... KanAugust \n", | |
| "20 AI entrepreneur with a PhD in mathematics, For... prz_chojecki \n", | |
| "21 Focus in Natural Language Processing, Data Sci... \n", | |
| "22 Founder @ Spawner.ai. Formerly AI @ P&G. 👨🏻💻 ... PoseysThumbs \n", | |
| "23 Data scientist, physicist and computer enginee... FavioVaz \n", | |
| "24 Physicist, Data Science Educator, Writer. Inte... \n", | |
| "25 I love to share my experiences learning to cod... jhsu98 \n", | |
| "26 Author of The Opex Analytics Blog. \n", | |
| "27 \n", | |
| "28 Head of Decision Intelligence, Google. ❤️ Stat... quaesita \n", | |
| "29 Certified Nerd GeorgeSeif94 " | |
| ] | |
| }, | |
| "execution_count": 343, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df_writer" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 344, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "df_writer.to_csv(\"writer.csv\",encoding='utf-8')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Collections" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 345, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "top_collections = df_posts.groupby('homeCollectionId').size().nlargest(30)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 346, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "df_collections = pd.DataFrame(top_collections,columns=['count'])\n", | |
| "df_collections.reset_index(inplace=True)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "some post has no collection, we ignore it" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 347, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "df_collections = df_collections[df_collections.homeCollectionId!='']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 348, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>homeCollectionId</th>\n", | |
| " <th>count</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>7f60cf5620c9</td>\n", | |
| " <td>11406</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>7219b4dc6c4c</td>\n", | |
| " <td>1632</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>32881626c9c9</td>\n", | |
| " <td>1028</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>f5af2b715248</td>\n", | |
| " <td>617</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td>3a8144eabfe3</td>\n", | |
| " <td>342</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>d0b105d10f0a</td>\n", | |
| " <td>269</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>5e5bef33608a</td>\n", | |
| " <td>196</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>7b837cf1fd73</td>\n", | |
| " <td>193</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>98111c9905da</td>\n", | |
| " <td>187</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>336d898217ee</td>\n", | |
| " <td>165</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>11</th>\n", | |
| " <td>d5e885e906a7</td>\n", | |
| " <td>100</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <td>31f4f88d6548</td>\n", | |
| " <td>98</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <td>356ca48206e6</td>\n", | |
| " <td>96</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>14</th>\n", | |
| " <td>5517fd7b58a6</td>\n", | |
| " <td>94</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>15</th>\n", | |
| " <td>6ea408ec434d</td>\n", | |
| " <td>92</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>16</th>\n", | |
| " <td>cb942d4b5d89</td>\n", | |
| " <td>90</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <td>f0db56adb08d</td>\n", | |
| " <td>86</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>18</th>\n", | |
| " <td>a2487db7984a</td>\n", | |
| " <td>84</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <td>f3225cc85e15</td>\n", | |
| " <td>76</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>20</th>\n", | |
| " <td>4689c8214177</td>\n", | |
| " <td>75</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>21</th>\n", | |
| " <td>fc78dab2b103</td>\n", | |
| " <td>71</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>22</th>\n", | |
| " <td>721b17443fd5</td>\n", | |
| " <td>69</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>23</th>\n", | |
| " <td>4c5221789b3</td>\n", | |
| " <td>67</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>24</th>\n", | |
| " <td>2a678b52fc4f</td>\n", | |
| " <td>64</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>25</th>\n", | |
| " <td>680eee12c50d</td>\n", | |
| " <td>62</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>26</th>\n", | |
| " <td>2d7ba3077a44</td>\n", | |
| " <td>60</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>27</th>\n", | |
| " <td>d02e65779d7b</td>\n", | |
| " <td>53</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>28</th>\n", | |
| " <td>e8dd4fd2bda0</td>\n", | |
| " <td>52</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>29</th>\n", | |
| " <td>c5f05be4e189</td>\n", | |
| " <td>48</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " homeCollectionId count\n", | |
| "1 7f60cf5620c9 11406\n", | |
| "2 7219b4dc6c4c 1632\n", | |
| "3 32881626c9c9 1028\n", | |
| "4 f5af2b715248 617\n", | |
| "5 3a8144eabfe3 342\n", | |
| "6 d0b105d10f0a 269\n", | |
| "7 5e5bef33608a 196\n", | |
| "8 7b837cf1fd73 193\n", | |
| "9 98111c9905da 187\n", | |
| "10 336d898217ee 165\n", | |
| "11 d5e885e906a7 100\n", | |
| "12 31f4f88d6548 98\n", | |
| "13 356ca48206e6 96\n", | |
| "14 5517fd7b58a6 94\n", | |
| "15 6ea408ec434d 92\n", | |
| "16 cb942d4b5d89 90\n", | |
| "17 f0db56adb08d 86\n", | |
| "18 a2487db7984a 84\n", | |
| "19 f3225cc85e15 76\n", | |
| "20 4689c8214177 75\n", | |
| "21 fc78dab2b103 71\n", | |
| "22 721b17443fd5 69\n", | |
| "23 4c5221789b3 67\n", | |
| "24 2a678b52fc4f 64\n", | |
| "25 680eee12c50d 62\n", | |
| "26 2d7ba3077a44 60\n", | |
| "27 d02e65779d7b 53\n", | |
| "28 e8dd4fd2bda0 52\n", | |
| "29 c5f05be4e189 48" | |
| ] | |
| }, | |
| "execution_count": 348, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df_collections" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 349, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "df_collections['name'] = df_collections.homeCollectionId.apply(lambda x:lookup_collections[x]['name'])\n", | |
| "df_collections['description'] = df_collections.homeCollectionId.apply(lambda x:lookup_collections[x]['description'])\n", | |
| "df_collections['domain'] = df_collections.homeCollectionId.apply(lambda x:lookup_collections[x].get('domain'))\n", | |
| "df_collections['subscriberCount'] = df_collections.homeCollectionId.apply(lambda x:lookup_collections[x].get('subscriberCount'))\n", | |
| "df_collections['tagline'] = df_collections.homeCollectionId.apply(lambda x:lookup_collections[x].get('tagline'))\n", | |
| "df_collections['tags'] = df_collections.homeCollectionId.apply(lambda x:lookup_collections[x].get('tags'))\n", | |
| "df_collections['slug'] = df_collections.homeCollectionId.apply(lambda x:lookup_collections[x].get('slug'))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 350, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>homeCollectionId</th>\n", | |
| " <th>count</th>\n", | |
| " <th>name</th>\n", | |
| " <th>description</th>\n", | |
| " <th>domain</th>\n", | |
| " <th>subscriberCount</th>\n", | |
| " <th>tagline</th>\n", | |
| " <th>tags</th>\n", | |
| " <th>slug</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>7f60cf5620c9</td>\n", | |
| " <td>11406</td>\n", | |
| " <td>Towards Data Science</td>\n", | |
| " <td>A Medium publication sharing concepts, ideas, ...</td>\n", | |
| " <td>towardsdatascience.com</td>\n", | |
| " <td>370008</td>\n", | |
| " <td>A Medium publication sharing concepts, ideas, ...</td>\n", | |
| " <td>[DATA SCIENCE, MACHINE LEARNING, ARTIFICIAL IN...</td>\n", | |
| " <td>towards-data-science</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>7219b4dc6c4c</td>\n", | |
| " <td>1632</td>\n", | |
| " <td>Analytics Vidhya</td>\n", | |
| " <td>Analytics Vidhya is a community of Analytics a...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>20817</td>\n", | |
| " <td>Analytics Vidhya is a community of Analytics a...</td>\n", | |
| " <td>[MACHINE LEARNING, ARTIFICIAL INTELLIGENCE, DE...</td>\n", | |
| " <td>analytics-vidhya</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>32881626c9c9</td>\n", | |
| " <td>1028</td>\n", | |
| " <td>Data Driven Investor</td>\n", | |
| " <td>from confusion to clarity, not insanity</td>\n", | |
| " <td>None</td>\n", | |
| " <td>27911</td>\n", | |
| " <td>from confusion to clarity, not insanity</td>\n", | |
| " <td>[TECHNOLOGY, ARTIFICIAL INTELLIGENCE, BLOCKCHA...</td>\n", | |
| " <td>datadriveninvestor</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>f5af2b715248</td>\n", | |
| " <td>617</td>\n", | |
| " <td>The Startup</td>\n", | |
| " <td>Medium's largest active publication, followed ...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>603226</td>\n", | |
| " <td>Medium's largest active publication, followed ...</td>\n", | |
| " <td>[STARTUP, TECH, ENTREPRENEURSHIP, DESIGN, LIFE]</td>\n", | |
| " <td>swlh</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td>3a8144eabfe3</td>\n", | |
| " <td>342</td>\n", | |
| " <td>HackerNoon.com</td>\n", | |
| " <td>how hackers start their afternoons.</td>\n", | |
| " <td>None</td>\n", | |
| " <td>480793</td>\n", | |
| " <td>how hackers start their afternoons.</td>\n", | |
| " <td>[HACKING, PROGRAMMING, TECH, HACKER, TECHNOLOGY]</td>\n", | |
| " <td>hackernoon</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>d0b105d10f0a</td>\n", | |
| " <td>269</td>\n", | |
| " <td>Better Programming</td>\n", | |
| " <td>Advice for programmers.</td>\n", | |
| " <td>None</td>\n", | |
| " <td>108299</td>\n", | |
| " <td>Advice for programmers.</td>\n", | |
| " <td>[SOFTWARE DEVELOPMENT, ENGINEERING, REACT, JAV...</td>\n", | |
| " <td>better-programming</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>5e5bef33608a</td>\n", | |
| " <td>196</td>\n", | |
| " <td>Becoming Human: Artificial Intelligence Magazine</td>\n", | |
| " <td>Latest News, Info and Tutorials on Artificial ...</td>\n", | |
| " <td>becominghuman.ai</td>\n", | |
| " <td>31390</td>\n", | |
| " <td>Latest News, Info and Tutorials on Artificial ...</td>\n", | |
| " <td>[ARTIFICIAL INTELLIGENCE, DEEP LEARNING, MACHI...</td>\n", | |
| " <td>becoming-human</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>7b837cf1fd73</td>\n", | |
| " <td>193</td>\n", | |
| " <td>Noteworthy - The Journal Blog</td>\n", | |
| " <td>The Official Journal Blog</td>\n", | |
| " <td>blog.usejournal.com</td>\n", | |
| " <td>65543</td>\n", | |
| " <td>The Official Journal Blog</td>\n", | |
| " <td>[STARTUP, PRODUCTIVITY, ENTREPRENEURSHIP, TECH...</td>\n", | |
| " <td>did-you-know-the-journal-blog</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>98111c9905da</td>\n", | |
| " <td>187</td>\n", | |
| " <td>Towards AI</td>\n", | |
| " <td>Towards AI, is the world’s fastest-growing AI ...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>6566</td>\n", | |
| " <td>Towards AI, is the world’s fastest-growing AI ...</td>\n", | |
| " <td>[ARTIFICIAL INTELLIGENCE, MACHINE LEARNING, DE...</td>\n", | |
| " <td>towards-artificial-intelligence</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>336d898217ee</td>\n", | |
| " <td>165</td>\n", | |
| " <td>freeCodeCamp.org</td>\n", | |
| " <td>This is no longer updated. Go to https://freec...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>608699</td>\n", | |
| " <td>This is no longer updated.</td>\n", | |
| " <td>[TECHNOLOGY, DESIGN, TECH, STARTUP, PRODUCTIVITY]</td>\n", | |
| " <td>free-code-camp</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>11</th>\n", | |
| " <td>d5e885e906a7</td>\n", | |
| " <td>100</td>\n", | |
| " <td>DataSeries</td>\n", | |
| " <td>Connecting data leaders and curating their tho...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>3217</td>\n", | |
| " <td>Connecting data leaders and curating their tho...</td>\n", | |
| " <td>[STARTUP, DATA SCIENCE, ARTIFICIAL INTELLIGENC...</td>\n", | |
| " <td>dataseries</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <td>31f4f88d6548</td>\n", | |
| " <td>98</td>\n", | |
| " <td>Center for Data Science</td>\n", | |
| " <td>This is the official research blog of the NYU ...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>1820</td>\n", | |
| " <td>This is the official research blog of the NYU ...</td>\n", | |
| " <td>[DATA SCIENCE, DATA MINING, TECHNOLOGY, ARTIFI...</td>\n", | |
| " <td>center-for-data-science</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <td>356ca48206e6</td>\n", | |
| " <td>96</td>\n", | |
| " <td>Nightingale</td>\n", | |
| " <td>The Journal of the Data Visualization Society</td>\n", | |
| " <td>None</td>\n", | |
| " <td>8496</td>\n", | |
| " <td>The Journal of the Data Visualization Society</td>\n", | |
| " <td>[DATA SCIENCE, DATA VISUALIZATION, DESIGN, PRO...</td>\n", | |
| " <td>nightingale</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>14</th>\n", | |
| " <td>5517fd7b58a6</td>\n", | |
| " <td>94</td>\n", | |
| " <td>Level Up Coding</td>\n", | |
| " <td>Coding tutorials and news. The developer homep...</td>\n", | |
| " <td>levelup.gitconnected.com</td>\n", | |
| " <td>30293</td>\n", | |
| " <td>Coding tutorials and news.</td>\n", | |
| " <td>[PROGRAMMING, WEB DEVELOPMENT, JAVASCRIPT, PYT...</td>\n", | |
| " <td>gitconnected</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>15</th>\n", | |
| " <td>6ea408ec434d</td>\n", | |
| " <td>92</td>\n", | |
| " <td>learn data science</td>\n", | |
| " <td>Unpacking Data Science One Step At A Time</td>\n", | |
| " <td>blog.exploratory.io</td>\n", | |
| " <td>6197</td>\n", | |
| " <td>Unpacking Data Science One Step At A Time</td>\n", | |
| " <td>[DATA SCIENCE, R PROGRAMMING, DATA VISUALIZATI...</td>\n", | |
| " <td>learn-dplyr</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>16</th>\n", | |
| " <td>cb942d4b5d89</td>\n", | |
| " <td>90</td>\n", | |
| " <td>Good Audience</td>\n", | |
| " <td>The front page of Deep Tech. Don't miss the la...</td>\n", | |
| " <td>blog.goodaudience.com</td>\n", | |
| " <td>17483</td>\n", | |
| " <td>The front page of Deep Tech.</td>\n", | |
| " <td>[CRYPTOCURRENCY, BLOCKCHAIN, ARTIFICIAL INTELL...</td>\n", | |
| " <td>good-audience</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <td>f0db56adb08d</td>\n", | |
| " <td>86</td>\n", | |
| " <td>dair.ai</td>\n", | |
| " <td>Democratizing Artificial Intelligence Research...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>3400</td>\n", | |
| " <td>Democratizing Artificial Intelligence Research...</td>\n", | |
| " <td>[MACHINE LEARNING, ARTIFICIAL INTELLIGENCE, RE...</td>\n", | |
| " <td>dair-ai</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>18</th>\n", | |
| " <td>a2487db7984a</td>\n", | |
| " <td>84</td>\n", | |
| " <td>Cambridge Spark</td>\n", | |
| " <td>Data Science Tutorials, Webinars and Resources...</td>\n", | |
| " <td>blog.cambridgespark.com</td>\n", | |
| " <td>1023</td>\n", | |
| " <td>Data Science Tutorials, Webinars and Resources...</td>\n", | |
| " <td>[DATA SCIENCE, MACHINE LEARNING, PYTHON]</td>\n", | |
| " <td>cambridgespark</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <td>f3225cc85e15</td>\n", | |
| " <td>76</td>\n", | |
| " <td>Acing AI</td>\n", | |
| " <td>Acing AI provides analysis of AI companies and...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>3498</td>\n", | |
| " <td>Acing AI provides analysis of AI companies and...</td>\n", | |
| " <td>[ARTIFICIAL INTELLIGENCE, DATA SCIENCE, MACHIN...</td>\n", | |
| " <td>acing-ai</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>20</th>\n", | |
| " <td>4689c8214177</td>\n", | |
| " <td>75</td>\n", | |
| " <td>FinTechExplained</td>\n", | |
| " <td>This blog aims to bridge the gap between techn...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>4577</td>\n", | |
| " <td>This blog aims to bridge the gap between techn...</td>\n", | |
| " <td>[FINANCE, TECHNOLOGY, DATA SCIENCE, FINTECH, M...</td>\n", | |
| " <td>fintechexplained</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>21</th>\n", | |
| " <td>fc78dab2b103</td>\n", | |
| " <td>71</td>\n", | |
| " <td>Budding Data Scientists</td>\n", | |
| " <td>A pilot data science hackathon for high school...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>17</td>\n", | |
| " <td>A pilot data science hackathon for high school...</td>\n", | |
| " <td>[DATA SCIENCE, EDUCATION, HACKATHONS, SOCIAL C...</td>\n", | |
| " <td>budding-data-scientists</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>22</th>\n", | |
| " <td>721b17443fd5</td>\n", | |
| " <td>69</td>\n", | |
| " <td>Coinmonks</td>\n", | |
| " <td>Coinmonks is a non-profit Crypto educational p...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>19309</td>\n", | |
| " <td>Coinmonks is a non-profit Crypto educational p...</td>\n", | |
| " <td>[BITCOIN, TECHNOLOGY, CRYPTOCURRENCY, BLOCKCHA...</td>\n", | |
| " <td>coinmonks</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>23</th>\n", | |
| " <td>4c5221789b3</td>\n", | |
| " <td>67</td>\n", | |
| " <td>Openbridge</td>\n", | |
| " <td>All things data, big and small</td>\n", | |
| " <td>blog.openbridge.com</td>\n", | |
| " <td>842</td>\n", | |
| " <td>All things data, big and small</td>\n", | |
| " <td>[DATA SCIENCE, DATA, ANALYTICS, TECHNOLOGY, BU...</td>\n", | |
| " <td>openbridge</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>24</th>\n", | |
| " <td>2a678b52fc4f</td>\n", | |
| " <td>64</td>\n", | |
| " <td>The Opex Analytics Blog</td>\n", | |
| " <td>Solving Complex Business Problems with Human a...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>517</td>\n", | |
| " <td>Solving Complex Business Problems with Human a...</td>\n", | |
| " <td>[DATA SCIENCE, OPTIMIZATION, AI, MACHINE LEARN...</td>\n", | |
| " <td>opex-analytics</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>25</th>\n", | |
| " <td>680eee12c50d</td>\n", | |
| " <td>62</td>\n", | |
| " <td>Heartbeat</td>\n", | |
| " <td>Exploring the intersection of mobile developme...</td>\n", | |
| " <td>heartbeat.fritz.ai</td>\n", | |
| " <td>7540</td>\n", | |
| " <td>Exploring the intersection of mobile developme...</td>\n", | |
| " <td>[ARTIFICIAL INTELLIGENCE, MACHINE LEARNING, DE...</td>\n", | |
| " <td>fritzheartbeat</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>26</th>\n", | |
| " <td>2d7ba3077a44</td>\n", | |
| " <td>60</td>\n", | |
| " <td>RAPIDS AI</td>\n", | |
| " <td>RAPIDS is a suite of software libraries for ex...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>1423</td>\n", | |
| " <td>RAPIDS is a suite of software libraries for ex...</td>\n", | |
| " <td>[DATA SCIENCE, BIG DATA ANALYTICS, MACHINE LEA...</td>\n", | |
| " <td>rapids-ai</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>27</th>\n", | |
| " <td>d02e65779d7b</td>\n", | |
| " <td>53</td>\n", | |
| " <td>Insight Fellows Program</td>\n", | |
| " <td>Insight Fellows Program - Your bridge to a thr...</td>\n", | |
| " <td>blog.insightdatascience.com</td>\n", | |
| " <td>13908</td>\n", | |
| " <td>Insight Fellows Program - Your bridge to a thr...</td>\n", | |
| " <td>[EDUCATION, DATA SCIENCE, DATA ENGINEERING, AI...</td>\n", | |
| " <td>insight-data</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>28</th>\n", | |
| " <td>e8dd4fd2bda0</td>\n", | |
| " <td>52</td>\n", | |
| " <td>The Circular Theory</td>\n", | |
| " <td>Conservation of the circle is the core dynamic...</td>\n", | |
| " <td>None</td>\n", | |
| " <td>154</td>\n", | |
| " <td>Conservation of the circle is the core dynamic...</td>\n", | |
| " <td>[DEEP LEARNING, MACHINE LEARNING, QUANTUM COMP...</td>\n", | |
| " <td>the-circular-theory</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>29</th>\n", | |
| " <td>c5f05be4e189</td>\n", | |
| " <td>48</td>\n", | |
| " <td>365 Data Science</td>\n", | |
| " <td>365 Data Science is an educational platform</td>\n", | |
| " <td>None</td>\n", | |
| " <td>32</td>\n", | |
| " <td>365 Data Science is an educational platform</td>\n", | |
| " <td>[DATA SCIENCE, BUSINESS INTELLIGENCE, DATA SCI...</td>\n", | |
| " <td>365datascience</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " homeCollectionId count name \\\n", | |
| "1 7f60cf5620c9 11406 Towards Data Science \n", | |
| "2 7219b4dc6c4c 1632 Analytics Vidhya \n", | |
| "3 32881626c9c9 1028 Data Driven Investor \n", | |
| "4 f5af2b715248 617 The Startup \n", | |
| "5 3a8144eabfe3 342 HackerNoon.com \n", | |
| "6 d0b105d10f0a 269 Better Programming \n", | |
| "7 5e5bef33608a 196 Becoming Human: Artificial Intelligence Magazine \n", | |
| "8 7b837cf1fd73 193 Noteworthy - The Journal Blog \n", | |
| "9 98111c9905da 187 Towards AI \n", | |
| "10 336d898217ee 165 freeCodeCamp.org \n", | |
| "11 d5e885e906a7 100 DataSeries \n", | |
| "12 31f4f88d6548 98 Center for Data Science \n", | |
| "13 356ca48206e6 96 Nightingale \n", | |
| "14 5517fd7b58a6 94 Level Up Coding \n", | |
| "15 6ea408ec434d 92 learn data science \n", | |
| "16 cb942d4b5d89 90 Good Audience \n", | |
| "17 f0db56adb08d 86 dair.ai \n", | |
| "18 a2487db7984a 84 Cambridge Spark \n", | |
| "19 f3225cc85e15 76 Acing AI \n", | |
| "20 4689c8214177 75 FinTechExplained \n", | |
| "21 fc78dab2b103 71 Budding Data Scientists \n", | |
| "22 721b17443fd5 69 Coinmonks \n", | |
| "23 4c5221789b3 67 Openbridge \n", | |
| "24 2a678b52fc4f 64 The Opex Analytics Blog \n", | |
| "25 680eee12c50d 62 Heartbeat \n", | |
| "26 2d7ba3077a44 60 RAPIDS AI \n", | |
| "27 d02e65779d7b 53 Insight Fellows Program \n", | |
| "28 e8dd4fd2bda0 52 The Circular Theory \n", | |
| "29 c5f05be4e189 48 365 Data Science \n", | |
| "\n", | |
| " description \\\n", | |
| "1 A Medium publication sharing concepts, ideas, ... \n", | |
| "2 Analytics Vidhya is a community of Analytics a... \n", | |
| "3 from confusion to clarity, not insanity \n", | |
| "4 Medium's largest active publication, followed ... \n", | |
| "5 how hackers start their afternoons. \n", | |
| "6 Advice for programmers. \n", | |
| "7 Latest News, Info and Tutorials on Artificial ... \n", | |
| "8 The Official Journal Blog \n", | |
| "9 Towards AI, is the world’s fastest-growing AI ... \n", | |
| "10 This is no longer updated. Go to https://freec... \n", | |
| "11 Connecting data leaders and curating their tho... \n", | |
| "12 This is the official research blog of the NYU ... \n", | |
| "13 The Journal of the Data Visualization Society \n", | |
| "14 Coding tutorials and news. The developer homep... \n", | |
| "15 Unpacking Data Science One Step At A Time \n", | |
| "16 The front page of Deep Tech. Don't miss the la... \n", | |
| "17 Democratizing Artificial Intelligence Research... \n", | |
| "18 Data Science Tutorials, Webinars and Resources... \n", | |
| "19 Acing AI provides analysis of AI companies and... \n", | |
| "20 This blog aims to bridge the gap between techn... \n", | |
| "21 A pilot data science hackathon for high school... \n", | |
| "22 Coinmonks is a non-profit Crypto educational p... \n", | |
| "23 All things data, big and small \n", | |
| "24 Solving Complex Business Problems with Human a... \n", | |
| "25 Exploring the intersection of mobile developme... \n", | |
| "26 RAPIDS is a suite of software libraries for ex... \n", | |
| "27 Insight Fellows Program - Your bridge to a thr... \n", | |
| "28 Conservation of the circle is the core dynamic... \n", | |
| "29 365 Data Science is an educational platform \n", | |
| "\n", | |
| " domain subscriberCount \\\n", | |
| "1 towardsdatascience.com 370008 \n", | |
| "2 None 20817 \n", | |
| "3 None 27911 \n", | |
| "4 None 603226 \n", | |
| "5 None 480793 \n", | |
| "6 None 108299 \n", | |
| "7 becominghuman.ai 31390 \n", | |
| "8 blog.usejournal.com 65543 \n", | |
| "9 None 6566 \n", | |
| "10 None 608699 \n", | |
| "11 None 3217 \n", | |
| "12 None 1820 \n", | |
| "13 None 8496 \n", | |
| "14 levelup.gitconnected.com 30293 \n", | |
| "15 blog.exploratory.io 6197 \n", | |
| "16 blog.goodaudience.com 17483 \n", | |
| "17 None 3400 \n", | |
| "18 blog.cambridgespark.com 1023 \n", | |
| "19 None 3498 \n", | |
| "20 None 4577 \n", | |
| "21 None 17 \n", | |
| "22 None 19309 \n", | |
| "23 blog.openbridge.com 842 \n", | |
| "24 None 517 \n", | |
| "25 heartbeat.fritz.ai 7540 \n", | |
| "26 None 1423 \n", | |
| "27 blog.insightdatascience.com 13908 \n", | |
| "28 None 154 \n", | |
| "29 None 32 \n", | |
| "\n", | |
| " tagline \\\n", | |
| "1 A Medium publication sharing concepts, ideas, ... \n", | |
| "2 Analytics Vidhya is a community of Analytics a... \n", | |
| "3 from confusion to clarity, not insanity \n", | |
| "4 Medium's largest active publication, followed ... \n", | |
| "5 how hackers start their afternoons. \n", | |
| "6 Advice for programmers. \n", | |
| "7 Latest News, Info and Tutorials on Artificial ... \n", | |
| "8 The Official Journal Blog \n", | |
| "9 Towards AI, is the world’s fastest-growing AI ... \n", | |
| "10 This is no longer updated. \n", | |
| "11 Connecting data leaders and curating their tho... \n", | |
| "12 This is the official research blog of the NYU ... \n", | |
| "13 The Journal of the Data Visualization Society \n", | |
| "14 Coding tutorials and news. \n", | |
| "15 Unpacking Data Science One Step At A Time \n", | |
| "16 The front page of Deep Tech. \n", | |
| "17 Democratizing Artificial Intelligence Research... \n", | |
| "18 Data Science Tutorials, Webinars and Resources... \n", | |
| "19 Acing AI provides analysis of AI companies and... \n", | |
| "20 This blog aims to bridge the gap between techn... \n", | |
| "21 A pilot data science hackathon for high school... \n", | |
| "22 Coinmonks is a non-profit Crypto educational p... \n", | |
| "23 All things data, big and small \n", | |
| "24 Solving Complex Business Problems with Human a... \n", | |
| "25 Exploring the intersection of mobile developme... \n", | |
| "26 RAPIDS is a suite of software libraries for ex... \n", | |
| "27 Insight Fellows Program - Your bridge to a thr... \n", | |
| "28 Conservation of the circle is the core dynamic... \n", | |
| "29 365 Data Science is an educational platform \n", | |
| "\n", | |
| " tags \\\n", | |
| "1 [DATA SCIENCE, MACHINE LEARNING, ARTIFICIAL IN... \n", | |
| "2 [MACHINE LEARNING, ARTIFICIAL INTELLIGENCE, DE... \n", | |
| "3 [TECHNOLOGY, ARTIFICIAL INTELLIGENCE, BLOCKCHA... \n", | |
| "4 [STARTUP, TECH, ENTREPRENEURSHIP, DESIGN, LIFE] \n", | |
| "5 [HACKING, PROGRAMMING, TECH, HACKER, TECHNOLOGY] \n", | |
| "6 [SOFTWARE DEVELOPMENT, ENGINEERING, REACT, JAV... \n", | |
| "7 [ARTIFICIAL INTELLIGENCE, DEEP LEARNING, MACHI... \n", | |
| "8 [STARTUP, PRODUCTIVITY, ENTREPRENEURSHIP, TECH... \n", | |
| "9 [ARTIFICIAL INTELLIGENCE, MACHINE LEARNING, DE... \n", | |
| "10 [TECHNOLOGY, DESIGN, TECH, STARTUP, PRODUCTIVITY] \n", | |
| "11 [STARTUP, DATA SCIENCE, ARTIFICIAL INTELLIGENC... \n", | |
| "12 [DATA SCIENCE, DATA MINING, TECHNOLOGY, ARTIFI... \n", | |
| "13 [DATA SCIENCE, DATA VISUALIZATION, DESIGN, PRO... \n", | |
| "14 [PROGRAMMING, WEB DEVELOPMENT, JAVASCRIPT, PYT... \n", | |
| "15 [DATA SCIENCE, R PROGRAMMING, DATA VISUALIZATI... \n", | |
| "16 [CRYPTOCURRENCY, BLOCKCHAIN, ARTIFICIAL INTELL... \n", | |
| "17 [MACHINE LEARNING, ARTIFICIAL INTELLIGENCE, RE... \n", | |
| "18 [DATA SCIENCE, MACHINE LEARNING, PYTHON] \n", | |
| "19 [ARTIFICIAL INTELLIGENCE, DATA SCIENCE, MACHIN... \n", | |
| "20 [FINANCE, TECHNOLOGY, DATA SCIENCE, FINTECH, M... \n", | |
| "21 [DATA SCIENCE, EDUCATION, HACKATHONS, SOCIAL C... \n", | |
| "22 [BITCOIN, TECHNOLOGY, CRYPTOCURRENCY, BLOCKCHA... \n", | |
| "23 [DATA SCIENCE, DATA, ANALYTICS, TECHNOLOGY, BU... \n", | |
| "24 [DATA SCIENCE, OPTIMIZATION, AI, MACHINE LEARN... \n", | |
| "25 [ARTIFICIAL INTELLIGENCE, MACHINE LEARNING, DE... \n", | |
| "26 [DATA SCIENCE, BIG DATA ANALYTICS, MACHINE LEA... \n", | |
| "27 [EDUCATION, DATA SCIENCE, DATA ENGINEERING, AI... \n", | |
| "28 [DEEP LEARNING, MACHINE LEARNING, QUANTUM COMP... \n", | |
| "29 [DATA SCIENCE, BUSINESS INTELLIGENCE, DATA SCI... \n", | |
| "\n", | |
| " slug \n", | |
| "1 towards-data-science \n", | |
| "2 analytics-vidhya \n", | |
| "3 datadriveninvestor \n", | |
| "4 swlh \n", | |
| "5 hackernoon \n", | |
| "6 better-programming \n", | |
| "7 becoming-human \n", | |
| "8 did-you-know-the-journal-blog \n", | |
| "9 towards-artificial-intelligence \n", | |
| "10 free-code-camp \n", | |
| "11 dataseries \n", | |
| "12 center-for-data-science \n", | |
| "13 nightingale \n", | |
| "14 gitconnected \n", | |
| "15 learn-dplyr \n", | |
| "16 good-audience \n", | |
| "17 dair-ai \n", | |
| "18 cambridgespark \n", | |
| "19 acing-ai \n", | |
| "20 fintechexplained \n", | |
| "21 budding-data-scientists \n", | |
| "22 coinmonks \n", | |
| "23 openbridge \n", | |
| "24 opex-analytics \n", | |
| "25 fritzheartbeat \n", | |
| "26 rapids-ai \n", | |
| "27 insight-data \n", | |
| "28 the-circular-theory \n", | |
| "29 365datascience " | |
| ] | |
| }, | |
| "execution_count": 350, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df_collections" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 351, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "df_collections.to_csv(\"collections.csv\",encoding='utf-8')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "language": "python", | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.6.0" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import requests | |
| import json | |
| from pymongo import MongoClient | |
| import datetime | |
| mongo_client = MongoClient('localhost', 27017) | |
| db = mongo_client.medium | |
| # create mongo unque index | |
| # Collection: medium collection | |
| # User: medium user | |
| # Post: medium post | |
| col_collection = db.Collection | |
| col_collection.create_index('id',unique=True) | |
| col_user = db.User | |
| col_user.create_index('userId', unique=True) | |
| col_post = db.Post | |
| col_post.create_index('id', unique=True) | |
| def get_article_archive(tag_slug,year,month,day): | |
| # tag_slug for example growth-hacking | |
| # year: 2018 | |
| # month: 01 | |
| # day: 01 | |
| try: | |
| response = requests.get( | |
| url="https://medium.com/tag/{tag_slug}/archive/{year}/{month}/{day}".format(tag_slug=tag_slug,year=year,month=month,day=day), | |
| params={ | |
| "count": "9", | |
| "ignore": ",,,", | |
| }, | |
| headers={ | |
| "Accept-Encoding": "gzip, deflate, br", | |
| "Upgrade-Insecure-Requests": "1", | |
| "Content-Type": "application/json", | |
| "Authority": "medium.com", | |
| "Sec-Fetch-Site": "same-origin", | |
| "Cache-Control": "no-cache", | |
| "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", | |
| "Sec-Fetch-Mode": "navigate", | |
| "Sec-Fetch-User": "?1", | |
| "Pragma": "no-cache", | |
| "Accept": "application/json", # assure response data format | |
| "Accept-Language": "en", | |
| }, | |
| ) | |
| res = json.loads(response.content[16:]) | |
| return res | |
| except requests.exceptions.RequestException: | |
| print('HTTP Request failed') | |
| if __name__ == '__main__': | |
| start_year, start_month, start_day = "2018", "01", "04" | |
| begin_date = datetime.date(int(start_year), int(start_month), int(start_day)) | |
| end_date = datetime.date.today() - datetime.timedelta(days=2) | |
| tag_slugs = ["machine-learning"] | |
| tag_slug = tag_slugs[0] | |
| for i in range((end_date-begin_date).days): | |
| single_date = begin_date + datetime.timedelta(days=i) | |
| year, month, day = single_date.isoformat()[:4], single_date.isoformat()[5:7], single_date.isoformat()[8:] | |
| print(i, year, month, day) | |
| data = get_article_archive(tag_slug=tag_slug,year=year,month=month,day=day) | |
| if data['payload']['references'].get('Collection'): | |
| for doc in data['payload']['references']['Collection'].values(): | |
| col_collection.update_one({'id':doc['id']},{"$set":doc},upsert=True) | |
| if data['payload']['references'].get('User'): | |
| for doc in data['payload']['references']['User'].values(): | |
| col_user.update_one({'userId':doc['userId']},{"$set":doc},upsert=True) | |
| if data['payload']['references'].get('Post'): | |
| for doc in data['payload']['references']['Post'].values(): | |
| col_post.update_one({'id':doc['id']},{"$set":doc},upsert=True) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment