首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

造了一个可以用来写爬虫的轮子nipper

写了一个轮子nipper,顾名思义就是用来像镊子一样操作HTML的。

可以使用css选择器的语法在给定的html里查询需要的元素,甚至是修改这些元素。

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!();});

其实rust早就有了类似的crate,但是这些轮子语法都有点繁琐,而且基本都只能查询,不能修改元素,

所以就在清明搞了这么一个东西,借鉴了golang里的goquery,语法就是css 选择器的语法。

大家如果觉得不错的话,可以点赞支持一波,谢谢!https://github.com/importcjj/nipper

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200407A0TZDO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券