Analysis of Stories Submitted to Hacker News

Introduction

Hacker News is a news website run by the investment fund and startup incubator Y Combinator. The site FAQ suggests that any topic which a good hacker might find interesting is appropriate for submission, though in practice most stories are about programming or the technology industry. Hacker News allows users to submit links and descriptions of URLs of interest and to vote for stories submitted by other users. The site displays the stories ranked according to an algorithm which determines story rank based on number of votes and the amount of time since the story was submitted.

I decided to scrape Hacker News to gain insight into what types of news stories Hacker News users consider most interesting and relevant. Using Python's Scrapy package, I was able to create a bot which scrapes Hacker News to obtain data about each news story which appears on the front of Hacker News. I also noticed that Hacker News provides a free, publicly available database of all submitted stories available through Google BigQuery, which I used to obtain a great deal more data for analysis than I could have obtained only by scraping. After filtering out stories which were too old (pre-2014) or which lacked a link, I was left with 544,573 Hacker News stories in my data set.

Scraping

Hacker News' story list web pages have a relatively simple document structure which can be handled easily by Scrapy. There are 20 pages worth of stories available at any given time, each of which I scraped each time I ran the scraper. For each story, I extracted the story title, link URL, submitter's username, number of votes, identification number, and time of story submission. The same information about each story was present in the data obtained from BigQuery.

Data Analysis

Using the data, I analyzed which users were most prolific in submitting stories to Hacker News as determined by three different metrics-- number of stories submitted, total number of votes received for submitted stories, and average number of votes per submitted story. I used the same metrics to investigate the top domain names in submitted story URLs, the popularity of a selected list of programming languages, and the best time of day to submit a story.

The top story submitters by story count have all submitted at least several hundred stories, with the most prolific submitter having submitted nearly 2,000 stories. The list of top submitters by total vote contains many of the same users, which is not that surprising considering that stories can only be upvoted so that submitting more stories can only add to your total score. What is more interesting is that many of these users also appear on the list of top submitters by average votes per story-- they do not just submit large numbers of stories, they are good at picking stories which will gain many votes.

The top domains submitted by all three metrics include github.com, those for popular content hosting sites like youtube.com and medium.com, and those for news sites (both tech-focused and of general interest). GitHub was the most popular domain going by total submissions and total score, though it fell to 6th place by average score per submission. This is consistent with a large number of programming projects being submitted, with the average programming project being somewhat less popular than the average submitted article from a major news site like the New York Times or Wired.

Javascript was the most popular programming language discussed by total submissions and total votes, followed by Python. The R language was less popular by all three metrics. Interestingly, the Haskell programming language had the highest average score per story, though it was the least popular language of all those tested by the other two metrics.

Examining the pattern of story submissions by hour, there is a clear trend which repeats each day. The most stories are submitted between 4:00 pm and 5:00 pm in the UTC time zone, which corresponds to 9:00 am to 10:00 am in San Francisco where Y Combinator is located. This is consistent with a site with many users from California's tech community, many of whom use the site around or shortly before the beginning of the work day. This hour of the day also has the highest average votes per submitted story, though the daily trend is less pronounced in that metric. This is consistent with stories gaining most of their votes within an hour or two of first being submitted-- something certainly true of stories which do not receive votes and are quickly culled.

2 Comments

  1. Hi this is somewhat of off topic but I was wondering if blogs use WYSIWYG
    editors or if you have to manually code with HTML. I'm starting a
    blog soon but have no coding skills so I wanted to get guidance from
    someone with experience. Any help would be greatly appreciated!

  2. Appreciating the time andd effort you put into your site and in depth information you offer.

    It's great to come across a blog every once in a while that isn't the same old rehashed material.

    Fantastic read! I've saved your site and I'm including your RSS feeds
    to my Google account.

Leave a Reply

Your email address will not be published. Required fields are marked *