simple-node-site-crawler
Version: 
A simple node module to crawl a domain and generate a page list.
67 lines (51 loc) • 1.35 kB
Markdown
A simple node module to crawl a domain and generate a page list. This is very much an experimental work in progress.
```javascript
{
	target: string;
	domain: string;
	source?: string;
	responseCode?: number;
	body?: string;
	links():Array<string>,
	internalLinks():Array<string>,
	externalLinks():Array<string>,
}
```
```javascript
import { Crawler } from "simple-node-site-crawler";
async function run() {
	const crawler = new Crawler(`jesseconner.ca`);
	await crawler.crawlSite();
}
run();
```
```javascript
crawler.events.on("update", (status) => {
	if (status.isDone) {
		console.log("Done!");
		return;
	}
	console.log(
		`Crawling ${status.currentPage} (Pages crawled: ${status.pagesCrawled})`,
	);
});
```
```javascript
import { Crawler } from "simple-node-site-crawler";
const crawler = new Crawler(`jesseconner.ca`);
const site = crawler.loadResults();
// Find any pages not linked from homepage.
const burriedPages = site.filter(
	(page) => page.source != `https://jesseconner.ca/`,
);
burriedPages.map((page) => console.log(page.source));
// Find any pages that are bad links.
const missingPages = site.filter((page) => page.responseCode > 399);
missingPages.map((page) => console.log(page.source));
```