jsdom

Crates.iojsdom
lib.rsjsdom
version0.0.11-alpha.1
sourcesrc
created_at2023-05-14 18:35:30.572741
updated_at2023-06-14 20:45:25.00202
descriptionA rust javascript dom parser for web scraping
homepage
repositoryhttps://github.com/a11ywatch/jsdom
max_upload_size
id864411
size14,399
Jeff Mendez (j-mendez)

documentation

https://docs.rs/jsdom

README

jsdom

A fast javascript dom parser for rust built for web scraping.

cargo add jsdom

use std::collections::HashSet;
use jsdom::extract::extract_links;

const SCRIPT: &str = r###"
var ele = document.createElement('a');
ele.href = 'https://a11ywatch.com';
"###;

#[test]
fn parse_links() {
    // build tree with elements created from the nodes todo
    let links: HashSet<String> = extract_links(SCRIPT);

    assert!(links.contains("https://a11ywatch.com"))
}

Features

This package will rollout features that are most important for web scraping first.

  1. hashbrown: Enable the hashbrown crate.
  2. tokio: Enable tokio streaming utils.

Stage 0.1

Intro stage can handle elements created in statements and expressions.

Commit count: 15

cargo fmt