main.rs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. extern crate reqwest;
  2. extern crate select;
  3. use select::document::Document;
  4. use select::predicate::Name;
  5. fn main() {
  6. scrape_feats("http://www.archivesofnethys.com/Feats.aspx?Category=Combat");
  7. }
  8. fn scrape_feats(url: &str) {
  9. let resp = reqwest::get(url).unwrap();
  10. assert!(resp.status().is_success());
  11. let doc = Document::from_read(resp).unwrap();
  12. let mut header = true;
  13. for node in doc.find(Name("tr")) {
  14. // skip the first one
  15. if header {
  16. header = false;
  17. } else {
  18. let mut tds = node.find(Name("td"));
  19. let name_raw = tds.next().unwrap().text();
  20. let prereqs_raw = tds.next().unwrap().text();
  21. let benefit_raw = tds.next().unwrap().text();
  22. // extra variables because '....unwrap().text().trim()' complains
  23. // about lifetime of borrowd value
  24. let name = name_raw.trim();
  25. let prereqs = prereqs_raw.trim();
  26. let benefit = benefit_raw.trim();
  27. println!("|{}|{}|{}|", name, prereqs, benefit);
  28. }
  29. }
  30. }