【Rust項目推薦】造了一個能夠用來寫爬蟲的輪子nipper

寫了一個輪子nipper ,顧名思義就是用來像鑷子同樣操做HTML的。
能夠使用css選擇器的語法在給定的html裏查詢須要的元素,甚至是修改這些元素。
  
    
  
  
   
   
            
   
   
    
      
    
    
     
     
              
     
     
其實rust 早就有了相似的crate,可是這些輪子語法都有點繁瑣,並且基本都只能查詢,不能修改元素,
因此就在清明搞了這麼一個東西,借鑑了golang裏的goquery,語法就是css 選擇器的語法。
use nipper::Document;
let html = include_str!("../test-pages/hacker_news.html");let document = Document::from(html);
document.select("tr.athing").iter().for_each(|athing| { let title = athing.select(".title a"); let source = title.select(".sitestr"); // The next sibling. let meta = athing.next(); let score = meta.select("span.score"); let hnuser = meta.select("a.hnuser"); let age = meta.select("span.age"); // The last matched element. let comment = meta.select("a").last();
println!("Title: {}", title.text()); if source.exists() { println!("> from: {}", source.text()); } if score.exists() { println!("> {}", score.text()); } if hnuser.exists() { println!("> by {}", hnuser.text()); } println!("> {}", age.text()); println!("> {}", comment.text()); println!();});
你們若是以爲不錯的話,能夠點贊支持一波,謝謝!https://github.com/importcjj/nipper

本文分享自微信公衆號 - Rust語言中文社區(rust-china)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。css

相關文章
相關標籤/搜索