Analysis of Stories Submitted to Hacker News

Posted on Oct 30, 2017


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.


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, those for popular content hosting sites like and, 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.

About Author

Related Articles

Leave a Comment

Jual Bibit Durian Montong December 26, 2017
Your style is very unique in comparison to other people I've read stuff from. Thanks for posting when you've got the opportunity, Guess I'll just book mark this web site.
Cheap Artificial Grass Liverpool December 22, 2017
My family members always saay that I am killing my time here at net, but I know I am getting familiarity everyday by reading suuch good posts.
Aberdeen CCTV December 7, 2017
Thank you so much regarding giving my famiuly an update on this issue on your web site. Please understand thjat iif a completely new post appears or in caqse any adjustments occur on the current write-up, I would be thinking about reading more and finding out hoow to make good utilization of those tactics you share. Thanks ffor your time and consideration of others by making your blog available.
Xbox One Tips and Tricks November 14, 2017
I've recently startfed a blog, tthe information yoou offer on thus web site has elped mee tremendously. Thnks for all oof your time & work.
tarmac driveways in Liverpool November 6, 2017
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.
Jual Bibit Durian Bawor Jatim November 1, 2017
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!

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI