Files
wehub-resource-sync f1ba9c6c36
/ test (push) Failing after 1s
/ build-and-push-to-ghcr (push) Has been skipped
chore: import upstream snapshot with attribution
2026-07-13 12:23:39 +08:00

97 lines
3.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test Article: Web Crawling Guide</title>
<meta name="description" content="A comprehensive guide to web crawling techniques">
<meta property="article:published_time" content="2024-01-15T10:00:00Z">
</head>
<body>
<header>
<nav id="site-nav">
<a href="/home">Home</a>
<a href="/about">About</a>
</nav>
</header>
<div class="ads banner">
<p>Buy our product!</p>
</div>
<article id="main-content">
<h1>Web Crawling Guide</h1>
<p>This is the <strong>main content</strong> of the article about web crawling.</p>
<h2>Section One: Basics</h2>
<p>Web crawling involves <em>fetching pages</em> from the internet automatically.</p>
<p>Here is a <a href="https://example.com/crawling">link to crawling docs</a> and
another <a href="https://example.org/robots">link about robots.txt</a>.</p>
<h2>Section Two: Images</h2>
<p>Below are some images used in crawling:</p>
<img src="https://example.com/spider.png" alt="A spider crawling the web">
<img src="https://example.com/network.jpg" alt="Network diagram">
<img src="https://example.com/noalt.png">
<h2>Section Three: Lists</h2>
<ul>
<li>Fetch HTML pages</li>
<li>Parse links</li>
<li>Follow links recursively</li>
</ul>
<blockquote>
<p>The web is a graph, not a tree.</p>
</blockquote>
<h2>Section Four: Code</h2>
<pre><code>const crawler = new Crawler();
crawler.start('https://example.com');</code></pre>
<h2>Section Five: Tables</h2>
<table>
<thead><tr><th>Method</th><th>Speed</th><th>Accuracy</th></tr></thead>
<tbody>
<tr><td>Browser</td><td>Slow</td><td>High</td></tr>
<tr><td>Curl</td><td>Fast</td><td>Medium</td></tr>
</tbody>
</table>
<h2>Section Six: Dividers</h2>
<p>Content before the rule.</p>
<hr>
<p>Content after the rule.</p>
<h2>Section Seven: More Resources</h2>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" alt="Tiny pixel">
<p>See also the <a href="/guide/advanced">advanced guide</a> and <a href="sibling-page">sibling page</a>.</p>
<h2>Section Eight: Deferred Content</h2>
<div id="deferred-content" class="loading" data-loaded="false">Loading deferred section, please wait…</div>
<script>
// Simulates a lazily-rendered widget: real browsers see the loaded
// state after ~100ms; HTML-only consumers see the static fallback
// above. Useful for exercising mutation-idle / wait-for-selector.
setTimeout(function () {
var el = document.getElementById('deferred-content');
if (!el) { return; }
el.classList.remove('loading');
el.classList.add('loaded');
el.setAttribute('data-loaded', 'true');
el.textContent = 'Deferred content fully loaded after 100ms.';
}, 100);
</script>
</article>
<aside class="sidebar">
<p>Related articles sidebar content</p>
<a href="https://example.com/related">Related Article</a>
</aside>
<footer>
<p>Copyright 2024</p>
<a href="/privacy">Privacy Policy</a>
</footer>
</body>
</html>