当前位置: 首页 > news >正文

网站开发的现状研究今天国际大事新闻

网站开发的现状研究,今天国际大事新闻,网络营销推广的研究方向,网页设计图片跟随鼠标移动转载自 Jsoup代码解读之七-实现一个CSS Selector当当当#xff01;终于来到了Jsoup的特色#xff1a;CSS Selector部分。selector也是我写的爬虫框架webmagic开发的一个重点。附上一张street fighter的图#xff0c;希望以后webmagic也能挑战Jsoup! select机制 Jsoup的se…转载自    Jsoup代码解读之七-实现一个CSS Selector当当当终于来到了Jsoup的特色CSS Selector部分。selector也是我写的爬虫框架webmagic开发的一个重点。附上一张street fighter的图希望以后webmagic也能挑战Jsoup! select机制 Jsoup的select包里类结构如下在最开始介绍Jsoup的时候就已经说过NodeVisitor和Selector了。Selector是select部分的对外facade而NodeVisitor则是遍历树的底层APICSS Selector也是根据NodeVisitor实现的遍历。 Jsoup的select核心是Evaluator。Selector所传递的表达式会经过QueryParser最终编译成一个Evaluator。Evaluator是一个抽象类它只有一个方法 !-- lang: java -- public abstract boolean matches(Element root, Element element);注意这里传入了root是为了某些情况下对树进行遍历时用的。 Evaluator的设计简洁明了所有的Selector表达式单词都会编译到对应的Evaluator。例如#xx对应Id.xx对应Class[]对应Attribute。这里补充一下w3c的CSS Selector规范http://www.w3.org/TR/CSS2/selector.html 当然只靠这几个还不够Jsoup还定义了CombiningEvaluator(对Evaluator进行And/Or组合)StructuralEvaluator(结合DOM树结构进行筛选)。 这里我们可能最关心的是“div ul li”这样的父子结构是如何实现的。这个的实现方式在StructuralEvaluator.Parent中贴一下代码了 !-- lang: java -- static class Parent extends StructuralEvaluator {public Parent(Evaluator evaluator) {this.evaluator evaluator;}public boolean matches(Element root, Element element) {if (root element)return false;Element parent element.parent();while (parent ! root) {if (evaluator.matches(root, parent))return true;parent parent.parent();}return false;} }这里Parent包含了一个evaluator属性会根据这个evaluator去验证所有父节点。注意Parent是可以嵌套的所以这个表达式div ul li最终会编译成And(Parent(And(Parent(Tag(div))Tag(ul)),Tag(li)))这样的Evaluator组合。 select部分比想象的要简单代码可读性也很高。经过了parser部分的研究这部分应该算是驾轻就熟了。 关于webmagic的后续打算 webmagic是一个爬虫框架它的Selector是用于抓取HTML中指定的文本其机制和Jsoup的Evaluator非常像只不过webmagic暂时是将Selector封装成较简单的API而Evaluator直接上了表达式。之前也考虑过自己定制DSL来写一个HTML现在看了Jsoup的源码实现能力算是有了但是引入DSL实现只是一小部分如何让DSL易写易懂才是难点。 其实看了Jsoup的源码精细程度上比webmagic要好得多了基本每个类都对应一个真实的概念抽象可能以后会在这方面下点工夫。 下篇文章将讲最后一部分白名单及HTML过滤机制。 最后依然附上这系列文章和代码的github地址https://github.com/code4craft/jsoup-learning
http://www.pierceye.com/news/886137/

相关文章:

  • 用花瓣网站上的图片做游戏行吗西安霸屏推广
  • 单片机和做网站医疗网站建设渠道
  • 上海做家纺的公司网站新闻发布稿
  • 广告网站大全扁平化网站psd
  • wordpress开启多站点那个网站可以做宣传
  • 专门建站的公司本网站正在建设升级中
  • 花市小说网站那里进建网站的公司哪里有
  • 自建网站服务器备案免费做易拉宝网站
  • 经典手机网站家政公司网站模板
  • 外贸做的亚马逊网站是哪个好产品怎样推广有效
  • 网站后台数据库备份怎么做怎样在阿里做网站
  • 后台网站手机版视频怎么做安阳百姓网
  • 设计公司网站公司详情域名解析网站登录
  • 优秀学校网站设计可以免费下源码的网站
  • 榆林高端网站建设xampp使用教程 wordpress
  • 站长工具搜一搜找做网站的
  • 建一个域名网站要多少钱南京哪里有做网站的
  • 网站群的建设网站建设自助建站制作
  • 怎么做网站程序标书制作教程全过程
  • 学网站建设前景印度做杂质的网站
  • 网站的建设意义盐城网站建设找哪家好
  • 赤峰市网站建设年轻人免费在线看视频
  • 使用word做网站网络广告的特点有哪些?
  • 网站系统参数设置定制网站的制作流程
  • 做家教网站公司品牌vi设计升级
  • 唯品会网站建设建议浙江网站建设价格费用
  • 网站建设购买深圳有做网站的公司有哪些
  • 网站预算表怎么做网站域名续费怎么续费
  • 宁波建设网站公众号关注编辑网站教程
  • 怎样自己做刷赞网站开发软件需要多少成本