What algorithms could I use to identify content on a web page
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Introduction
Identifying the "real content" on a web page is not one single algorithmic problem. It could mean extracting the main article, locating product data, classifying page type, or distinguishing content from navigation and ads. The right algorithm depends on what you mean by content and on how structured the target pages are.
Start with DOM Structure Before Machine Learning
For many web pages, the first useful signal is the HTML structure itself. A DOM parser lets you inspect tags, nesting, attributes, and text density.
This is not a sophisticated algorithm, but it is often the best first step. If the site uses stable semantic structure, CSS selectors or XPath may solve the problem with less complexity than a classifier.
Use Text Density and Boilerplate Removal for Main Content Extraction
A classic family of algorithms tries to separate main content from boilerplate by looking at text density, link density, and DOM position. This is the idea behind tools such as Readability-style extraction.
Useful signals include:
- amount of visible text in a block
- ratio of text to links
- depth and repetition of DOM patterns
- tag types such as
article,main,p, and headings
A content block with lots of text and few links is more likely to be an article body than a navigation menu.
This heuristic approach works well for blog posts, news pages, and documentation where the main content occupies large contiguous text blocks.
Use Rule-Based Extraction When the Target Site Is Known
If you are scraping a known site or a small family of sites, hand-authored extraction rules are often the most robust solution.
Rule-based extraction is not glamorous, but it is often better than machine learning when:
- the target sites are stable
- the schema is known
- precision matters more than broad generalization
A lot of production scraping systems succeed by combining DOM parsing with carefully maintained per-site rules.
Use ML Only When Page Diversity Justifies It
Machine learning becomes useful when you need to generalize across many layouts and cannot write per-site selectors. In that case, you can treat content identification as a classification problem at the block or node level.
Possible features include:
- tag type
- text length
- link density
- DOM depth
- CSS class tokens
- surrounding sibling patterns
- word-distribution features
Then a classifier such as logistic regression, gradient boosting, or a neural model can score whether a node is main content, navigation, footer, ad, or metadata.
The engineering tradeoff is labeling cost. A learned model is only worth it if the page diversity is large enough to justify training and maintenance.
NLP Helps After Structural Extraction, Not Before
Natural language processing is often more useful after you have isolated candidate content blocks. For example, once you extract several text regions, NLP can help determine:
- whether the text is product content, article prose, or comments
- whether it contains named entities
- whether it matches a target topic or intent
In other words, DOM and structure usually identify where the content is, while NLP helps classify what that content means.
That ordering is important because applying heavy NLP to the entire raw page is often wasteful and noisy.
Dynamic Pages Need Rendering or API Inspection
Some pages do not contain useful content in the initial HTML at all. In those cases, algorithm choice alone is not enough. You may first need to:
- execute JavaScript in a headless browser
- inspect XHR or fetch requests
- consume the underlying JSON API directly
This is an operational constraint rather than a pure extraction algorithm, but it strongly affects the correct design.
Common Pitfalls
- Asking for one universal content-identification algorithm when the real target varies by page type and business goal.
- Jumping to machine learning before checking whether stable DOM rules already solve the problem.
- Ignoring text density and link density, which are strong signals for main-content extraction.
- Applying NLP to the whole page before isolating likely content regions structurally.
- Forgetting that dynamic pages may require rendering or API discovery before any extraction logic can work.
Summary
- Content identification on web pages can mean several different tasks, and the algorithm should match the goal.
- DOM parsing and rule-based extraction are often the best starting point.
- Boilerplate-removal heuristics work well for article-style pages.
- ML becomes useful when layout diversity is too large for hand-authored rules.
- Structural extraction usually comes before NLP-based content understanding.

