{"id":1593,"date":"2018-12-25T22:29:56","date_gmt":"2018-12-25T22:29:56","guid":{"rendered":"https:\/\/www.codeastar.com\/?p=1593"},"modified":"2018-12-25T23:11:20","modified_gmt":"2018-12-25T23:11:20","slug":"hong-kong-python-word-cloud-job-seekers","status":"publish","type":"post","link":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/","title":{"rendered":"Hong Kong Edition: Python Word Cloud for Job Seekers"},"content":{"rendered":"\n

Last time, we coded a Python Word Cloud Generator<\/a> for Indeed.com users. This time, since Christmas is here, I would like to code a job seeking word cloud for my hometown — Hong Kong! So no matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this Hong Kong edition word cloud can help you find what you want.<\/p>\n\n\n\n\n\n\n\n

The Easy Way<\/h3>\n\n\n\n

Our project this time is about the Hong Kong job market, we can still use the same Indeed web miner from our last post. Simply replace the url_prefix <\/em>variable from “https:\/\/www.indeed.com” to “https:\/\/www.indeed.hk”. Then we can build a word cloud for the Hong Kong job market.<\/p>\n\n\n\n

Really? Really that simple? Indeed<\/strong>. But, we are going to do it in a better and more localized way. <\/p>\n\n\n\n

The Hong Kong Way \ud83c\udded\ud83c\uddf0<\/h3>\n\n\n\n

Other than Indeed.com, there is another popular job searching site in Hong Kong — jobsdb.com<\/a>. JobsDB is the No. 1<\/a> recruitment website in Hong Kong, which is used by many local companies and multinational corporations’ regional offices in Hong Kong.<\/p>\n\n\n\n

So this time, we code the JobsDB web miner using the Indeed web miner’s skeleton. We capture user’s input, analyze JobsDB results using TFIDF<\/a>, and generate a word cloud.<\/p>\n\n\n\n

First, we import required modules (yes, they look similar in Indeed web miner :]] ):<\/p>\n\n\n\n

from bs4 import BeautifulSoup\nimport urllib\nfrom tqdm import tqdm\nimport nltk\nfrom nltk.corpus import stopwords\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nimport matplotlib.pyplot as plt\nfrom wordcloud import WordCloud, ImageColorGenerator\nimport sys, re, string, datetime, getopt\nfrom os import path\nfrom PIL import Image\nimport numpy as np<\/pre>\n\n\n\n

And assign the url_prefix<\/em> to Hong Kong JobsDB website:<\/p>\n\n\n\n

url_prefix = \"https:\/\/hk.jobsdb.com\" \nparams = \"\/hk\/search-jobs\/{}\/\".format(params)\nlocation = \"Hong Kong\"<\/pre>\n\n\n\n

Scraping with \u201cSoup\u201d (again)<\/h3>\n\n\n\n

Like the way we did in Indeed web miner, we use Beautiful Soup for web scraping to get the search results from JobsDB:<\/p>\n\n\n\n

def getJobLinksFromIndexPage(soup, url_prefix): \n    job_links_arr = [] \n    for link in tqdm(soup.find_all('a', attrs={'href': re.compile(\"^\"+url_prefix+\"\/hk\/en\/job\/\")})):\n        job_title_link = link.get('href')\n        job_links_arr.append(job_title_link)        \n    return job_links_arr\n\ndef getJobInfoLinks(url, next_page_count, url_prefix, \n                   params, start_page):\n    job_links_arr = []   \n    while True: \n        #define an user agent as it is a required field for browsing JobsDB\n        req = urllib.request.Request(url, headers={'User-Agent' : \"Magic Browser\"}) \n        html = urllib.request.urlopen( req )\n        soup = BeautifulSoup(html, 'lxml')        \n        job_links_arr += getJobLinksFromIndexPage(soup, url_prefix)\n        \n        start_page += 1\n        if (start_page > next_page_count):\n            break\n        next_page_tag = \"{}{}\".format(params, start_page)\n        next_link = soup.find('a', attrs={'href': re.compile(\"^\"+next_page_tag)})\n        if (next_link == None):\n            break\n        url = url_prefix + next_link.get('href')    \n    return job_links_arr  \n\nstart_page = 1 \nurl = \"{}{}{}\".format(url_prefix,params, start_page)\ncurrent_datetime = datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')\nprint(\"Getting job links in {} page(s)...\".format(search_page))\njob_links_arr = getJobInfoLinks(url, search_page, url_prefix,\n                               params, start_page)\n<\/pre>\n\n\n\n

Please note that there are 2 minor differences on our JobsDB web miner:<\/p>\n\n\n\n

  1. we find job links by hyperlink pattern instead of div class<\/li>
  2. we assign “Magic Browser” as user-agent to pass through JobsDB’s request checking <\/li><\/ol>\n\n\n\n

    Once we have had the job links, we can scrape the job details:<\/p>\n\n\n\n

    punctuation = string.punctuation\njob_desc_arr=[] \nprint(\"Getting job details in {} post(s)...\".format(len(job_links_arr)))\nfor job_link in tqdm(job_links_arr): \n    req = urllib.request.Request(job_link, headers={'User-Agent' : \"Magic Browser\"}) \n    job_html = urllib.request.urlopen( req )\n    job_soup = BeautifulSoup(job_html, 'lxml')\n    job_desc = job_soup.find('div', {'class':'jobad-primary-details'})\n    for li_tag in job_desc.findAll('li'):\n        li_tag.insert(0, \" \")      #add space before an object\n    job_desc = job_desc.get_text()  \n    job_desc = re.sub('https?:\\\/\\\/.*[\\r\\n]*', '', job_desc, flags=re.MULTILINE)\n    job_desc = job_desc.translate(job_desc.maketrans(punctuation, ' ' * len(punctuation)))    \n    job_desc_arr.append(job_desc)<\/pre>\n\n\n\n

    Other than the “Magic Browser” user-agent and the JobsDB div class name, we are just using the same code snippet from Indeed web miner.<\/p>\n\n\n\n

    After getting the job details, we use the same TFIDF code to obtained the top 500 weighted words in transformed_job_desc<\/em>. <\/p>\n\n\n\n

    Visualize the Word Cloud again and a little twist…<\/h3>\n\n\n\n

    Finally, we are in the word cloud generation stage. We can use the same code from last post<\/a> to generate a word cloud. So I use “programmer” as search input with “10” search result pages.<\/p>\n\n\n\n

    Here we go:<\/p>\n\n\n\n

    \"hong<\/figure>\n\n\n\n

    We can find “web”, “java”, “sql”, “.net”, “c” and other keywords from Hong Kong’s word cloud for “programmer”. By comparing with the Indeed’s word cloud, the Hong Kong’s one is more focused on “web”, “java”, “sql” and “.net”. While the Indeed’s one is heavily “C” weighted.<\/p>\n\n\n\n

    Then what is “a little twist”? As mentioned earlier, we do it in a more localized way, the Hong Kong way. Thus, we bring you the Hong Kong Junk Boat!<\/p>\n\n\n\n

    \"Hong<\/figure>\n\n\n\n

    It is basically as same as our original word cloud, but it is presented in a junk boat mask. In order to do this twist, we need a mask image file like this: <\/p>\n\n\n\n

    \"junk<\/figure>\n\n\n\n

    We then load the image and apply the image mask to our word cloud. <\/p>\n\n\n\n

    junkboat_mask = np.array(Image.open(\"images\/junk_hk.png\"))\nw = WordCloud(width=800,height=600,background_color='white',max_words=500,mask=junkboat_mask, \n    contour_width=2, contour_color='#E50110').fit_words(freqs_dict)\nimage_colors = ImageColorGenerator(junkboat_mask)\nplt.imshow(w.recolor(color_func=image_colors), interpolation=\"bilinear\")<\/pre>\n\n\n\n

    Also, we need to add an optional parameter from command line to trigger the “junk boat” mode.<\/p>\n\n\n\n

    try:\n    opts, args = getopt.getopt(sys.argv[2:],\"jp:\")\nexcept getopt.GetoptError as err:\n    print('ERROR: {}'.format(err))\n    sys.exit(1)\n\njunk_boat_mode = False\nsearch_page = 1\n\nfor opt, arg in opts:\n    if opt == '-j':\n        junk_boat_mode = True\n    elif opt == '-p':\n        search_page = int(arg)<\/pre>\n\n\n\n

    Thus we can display the junk boat word cloud when we add “-j” from command line:<\/p>\n\n\n\n

    $pythonw jobsdbminer.py \"programmer\" -p 10 -j    #display a junk boat word cloud using 10 search result pages\n$pythonw jobsdbminer.py \"programmer\" -p 10     #display an ordinary word cloud using 10 search result pages<\/code><\/pre>\n\n\n\n
    <\/div>\n\n\n\n

    What have we learnt in this post?<\/h3>\n\n\n\n
    1. Usage of the number one and the most localized job searching site in Hong Kong<\/li>
    2. Assigning user agent on url open request<\/li>
    3. Usage of image mask on generating word cloud<\/li>
    4. Adding optional command-line argument in Python<\/li><\/ol>\n\n\n\n

      (the complete source can be found at https:\/\/github.com\/codeastar\/webminer_jobsdb<\/a> or https:\/\/gitlab.com\/codeastar\/webminer_jobsdb<\/a>) <\/p>\n","protected":false},"excerpt":{"rendered":"

      Last time, we coded a Python Word Cloud Generator for Indeed.com users. This time, since Christmas is here, I would like to code a job seeking word cloud for my hometown — Hong Kong! So no matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this Hong Kong […]<\/p>\n","protected":false},"author":1,"featured_media":1624,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[2],"tags":[43,124,122,8,89,42,121],"class_list":["post-1593","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-we-code-therefore-we-are","tag-beautiful-soup","tag-hong-kong","tag-job-search","tag-python","tag-tfidf","tag-web-scraping","tag-word-cloud"],"jetpack_publicize_connections":[],"yoast_head":"\nHong Kong Edition: Python Word Cloud for Job Seekers ⋆ Code A Star<\/title>\n<meta name=\"description\" content=\"No matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this job info word cloud can help you find what you want.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hong Kong Edition: Python Word Cloud for Job Seekers ⋆ Code A Star\" \/>\n<meta property=\"og:description\" content=\"No matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this job info word cloud can help you find what you want.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/\" \/>\n<meta property=\"og:site_name\" content=\"Code A Star\" \/>\n<meta property=\"article:publisher\" content=\"codeastar\" \/>\n<meta property=\"article:author\" content=\"codeastar\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-25T22:29:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-25T23:11:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1239\" \/>\n\t<meta property=\"og:image:height\" content=\"623\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Raven Hon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codeastar\" \/>\n<meta name=\"twitter:site\" content=\"@codeastar\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raven Hon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/\"},\"author\":{\"name\":\"Raven Hon\",\"@id\":\"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd\"},\"headline\":\"Hong Kong Edition: Python Word Cloud for Job Seekers\",\"datePublished\":\"2018-12-25T22:29:56+00:00\",\"dateModified\":\"2018-12-25T23:11:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/\"},\"wordCount\":633,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd\"},\"image\":{\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1\",\"keywords\":[\"Beautiful Soup\",\"Hong Kong\",\"job search\",\"Python\",\"TFIDF\",\"web scraping\",\"word cloud\"],\"articleSection\":[\"We code therefore we are\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/\",\"url\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/\",\"name\":\"Hong Kong Edition: Python Word Cloud for Job Seekers ⋆ Code A Star\",\"isPartOf\":{\"@id\":\"https:\/\/www.codeastar.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1\",\"datePublished\":\"2018-12-25T22:29:56+00:00\",\"dateModified\":\"2018-12-25T23:11:20+00:00\",\"description\":\"No matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this job info word cloud can help you find what you want.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1\",\"width\":1239,\"height\":623,\"caption\":\"Hong Kong Edition\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codeastar.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hong Kong Edition: Python Word Cloud for Job Seekers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codeastar.com\/#website\",\"url\":\"https:\/\/www.codeastar.com\/\",\"name\":\"Code A Star\",\"description\":\"We don't wish upon a star, we code a star\",\"publisher\":{\"@id\":\"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codeastar.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd\",\"name\":\"Raven Hon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codeastar.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/08\/logo70.png?fit=70%2C70&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/08\/logo70.png?fit=70%2C70&ssl=1\",\"width\":70,\"height\":70,\"caption\":\"Raven Hon\"},\"logo\":{\"@id\":\"https:\/\/www.codeastar.com\/#\/schema\/person\/image\/\"},\"description\":\"Raven Hon is\u00a0a 20 years+ veteran in information technology industry who has worked on various projects from console, web, game, banking and mobile applications in different sized companies.\",\"sameAs\":[\"https:\/\/www.codeastar.com\",\"codeastar\",\"https:\/\/x.com\/codeastar\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hong Kong Edition: Python Word Cloud for Job Seekers ⋆ Code A Star","description":"No matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this job info word cloud can help you find what you want.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/","og_locale":"en_US","og_type":"article","og_title":"Hong Kong Edition: Python Word Cloud for Job Seekers ⋆ Code A Star","og_description":"No matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this job info word cloud can help you find what you want.","og_url":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/","og_site_name":"Code A Star","article_publisher":"codeastar","article_author":"codeastar","article_published_time":"2018-12-25T22:29:56+00:00","article_modified_time":"2018-12-25T23:11:20+00:00","og_image":[{"width":1239,"height":623,"url":"https:\/\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png","type":"image\/png"}],"author":"Raven Hon","twitter_card":"summary_large_image","twitter_creator":"@codeastar","twitter_site":"@codeastar","twitter_misc":{"Written by":"Raven Hon","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#article","isPartOf":{"@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/"},"author":{"name":"Raven Hon","@id":"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd"},"headline":"Hong Kong Edition: Python Word Cloud for Job Seekers","datePublished":"2018-12-25T22:29:56+00:00","dateModified":"2018-12-25T23:11:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/"},"wordCount":633,"commentCount":0,"publisher":{"@id":"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd"},"image":{"@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1","keywords":["Beautiful Soup","Hong Kong","job search","Python","TFIDF","web scraping","word cloud"],"articleSection":["We code therefore we are"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/","url":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/","name":"Hong Kong Edition: Python Word Cloud for Job Seekers ⋆ Code A Star","isPartOf":{"@id":"https:\/\/www.codeastar.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage"},"image":{"@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1","datePublished":"2018-12-25T22:29:56+00:00","dateModified":"2018-12-25T23:11:20+00:00","description":"No matter you are living in Hong Kong or looking for jobs in Hong Kong, I hope this job info word cloud can help you find what you want.","breadcrumb":{"@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#primaryimage","url":"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1","width":1239,"height":623,"caption":"Hong Kong Edition"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codeastar.com\/hong-kong-python-word-cloud-job-seekers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codeastar.com\/"},{"@type":"ListItem","position":2,"name":"Hong Kong Edition: Python Word Cloud for Job Seekers"}]},{"@type":"WebSite","@id":"https:\/\/www.codeastar.com\/#website","url":"https:\/\/www.codeastar.com\/","name":"Code A Star","description":"We don't wish upon a star, we code a star","publisher":{"@id":"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codeastar.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.codeastar.com\/#\/schema\/person\/832d202eb92a3d430097e88c6d0550bd","name":"Raven Hon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codeastar.com\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/08\/logo70.png?fit=70%2C70&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/08\/logo70.png?fit=70%2C70&ssl=1","width":70,"height":70,"caption":"Raven Hon"},"logo":{"@id":"https:\/\/www.codeastar.com\/#\/schema\/person\/image\/"},"description":"Raven Hon is\u00a0a 20 years+ veteran in information technology industry who has worked on various projects from console, web, game, banking and mobile applications in different sized companies.","sameAs":["https:\/\/www.codeastar.com","codeastar","https:\/\/x.com\/codeastar"]}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.codeastar.com\/wp-content\/uploads\/2018\/12\/cloudmaker3_hk.png?fit=1239%2C623&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8PcRO-pH","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/posts\/1593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/comments?post=1593"}],"version-history":[{"count":29,"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/posts\/1593\/revisions"}],"predecessor-version":[{"id":1629,"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/posts\/1593\/revisions\/1629"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/media\/1624"}],"wp:attachment":[{"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/media?parent=1593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/categories?post=1593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codeastar.com\/wp-json\/wp\/v2\/tags?post=1593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}