1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- extern crate reqwest;
- extern crate select;
- use select::document::Document;
- use select::predicate::Name;
- fn main() {
- scrape_feats("http://www.archivesofnethys.com/Feats.aspx?Category=Combat");
- }
- fn scrape_feats(url: &str) {
- let resp = reqwest::get(url).unwrap();
- assert!(resp.status().is_success());
- let doc = Document::from_read(resp).unwrap();
- let mut header = true;
- for node in doc.find(Name("tr")) {
- // skip the first one
- if header {
- header = false;
- } else {
- let mut tds = node.find(Name("td"));
- let name_raw = tds.next().unwrap().text();
- let prereqs_raw = tds.next().unwrap().text();
- let benefit_raw = tds.next().unwrap().text();
- // extra variables because '....unwrap().text().trim()' complains
- // about lifetime of borrowd value
- let name = name_raw.trim();
- let prereqs = prereqs_raw.trim();
- let benefit = benefit_raw.trim();
- println!("|{}|{}|{}|", name, prereqs, benefit);
- }
- }
- }
|