淘宝搜索:定向抓取网页技术漫谈
网络爬虫(web crawler)又称为网络蜘蛛(web spider)是一段计算机程序,它从互联网上按照一定的逻辑和算法抓取和下载互联网的网页,是搜索引擎的一个重要组成部分。一般的爬虫从一部分start url开始,按照一定的策略开始爬取,爬取到的新的url在放入到爬取队列之中,然后进行新一轮的爬取,直到抓取完毕为止。 我们看一下crawler一般会遇到什么样的问题吧: 抓取的网页量很大 网页更新量也很大,一般的网站,比如新闻,电子商务网...
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
网络爬虫(web crawler)又称为网络蜘蛛(web spider)是一段计算机程序,它从互联网上按照一定的逻辑和算法抓取和下载互联网的网页,是搜索引擎的一个重要组成部分。一般的爬虫从一部分start url开始,按照一定的策略开始爬取,爬取到的新的url在放入到爬取队列之中,然后进行新一轮的爬取,直到抓取完毕为止。 我们看一下crawler一般会遇到什么样的问题吧: 抓取的网页量很大 网页更新量也很大,一般的网站,比如新闻,电子商务网...
当产品经理定义出用户模型与需求后,就可以开始UI框架图的绘制了。首先是交互的流程设计,可以手绘草图,也可以使用Visio或者Axure等工具,最重要的是记录下完整的设计思维。要事先知道自己的首页要给用户一个什么样的直观感觉,是多数功能都显示在一个主页上的复杂信息型还是少量按钮的流程型。这是交互设计师的技能也是UI设计师对于产品的理解,特别是对于小屏幕的手机来说,如何尽量少的形式表达出用户真正的需求。
这是我总结多年的一个小文档,主要内容是Javascript和CSS浏览器兼容总结,最近看见有人咨询浏览器兼容的问题,就贡献出来。并不一定全,有的也可能不准确,比如新出的IE8、Chrome等都没有太多涉及,虽然最近做的一些项目也兼容了IE8、Chrome等,但都没来的及总结进去,后来就忘了…汗。大家一起慢慢完善吧。
对SSD一种常见的认识是随机读、顺序读、顺序写都很快,但随机写很慢。从很多目前公布的产品性能指标数据和测试结果看,确实如此。一般SSD小块随机读性能可以达到几万甚至过十万,但小块随机写性能则一般只有3-5千,相差一个数量级。我认为这一认识不完全正确。SSD是一个很复杂的硬件,也还在不断改进,各代产品的性能表现往往有很大差异,针对不同的IO操作模式,SSD的性能表现可能有非常大的差异,它的性能表现决不能用“三快一慢...
本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。 本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来前缀匹配和后缀匹配的区别就仅仅在于比较...
@xyz98在Twitter上指出: 新浪微博的评论附属于原文就已经够不平等了,即使当BBS用,难道不知道评论经常比主贴更精彩吗?为什么就没有转发和收藏功能呢?更过分的是还多了个举报功能,凭什么就不能举报原文呢? 也就是说,新浪微博其实是个“微论坛”,只是用了个微博客的概念来忽悠大家。如果Twitter的信息架构对它的信息传播没有任何优势,那它为啥要整个新的?架一个BBS不就行了吗? 当然,这点有点公说公有理,婆说婆有理。两...
相信大家都知道html和css,知道html结构和css表现分离,知道html语义化,这些都是这几年的热门关键字。语义化的html在国内也是一两年前才开始被追捧的,看看现在群里谈论的html结构,关于html结构的面试题,语义化的html占据了很大一部分。那么为什么要使用语义化的HTML?语义化的HTML到底有什么好处呢?
越来越多的产品和服务被部署在网络上,如何大规模的衡量用户体验成为一个巨大的机遇和挑战,怎样设置以用户为中心的指标来衡量网络应用关键目标的转化过程,推动产品决策成为一个可以思考的点。在这篇文章中,Google 给我们带来了目前正在使用的,以用户为中心度量的HEART体系,以及把产品目标与创建指标体系相互关联的过程。本文也包含了应用HEART指标,同时从数据驱动以及从用户为中心的角度出发,帮助产品团队决策的实例。...
网络上越来越多的站长在使用采集系统进行网站采集。如何应对这样的采集成为一个很棘手的问题。先前写过一篇怎样防止网站被采集的的文章,但是中间提到的方法感觉不是非常的适用。 正常的搜索引擎抓取页面可以使用robots.txt来进行屏蔽,比如万恶的雅虎,流量和不带过来,确是爬的最勤快的,大量的暂用服务器资源。 防采集主要防止的是那些除搜索引擎外的抓取行为,即除搜索引擎外的非人为访问。
这是一种开放地址HASH,主要目的是为了提高查询速度。提高查询速度常用的思路是在插入的时候对数据作调整,让数据更紧凑。常用的方法在HASH表比较满的情况下,复杂度都很难保证。这个方法的特点是,它可以保证最坏情况下,查询的复杂度也是个常数。元素X算HASH后,应该存在I节点,则允许它存在【I,I+H)之间第一个空闲的节点,H一般去32,一是H比较小,用一个INT作BITMAP就可以表示它后面哪些元素是HASH到这里的。二是,H太...
新浪微博的开放平台提供了jsSDK的方法,但是很多人反映不会使用,这里最关键的一点是不会放跨域文件。的确,我也承认开放平台的开发文档写的不是很详细,比如对于一些接口是使用REST的,要人云里雾里,而对于REST的介绍却很隐晦,我也是尝试了几次才找到的方法(例如删除微博接口)。
Google的用户体验评价方案只是提供了简单的分析思路,但是没有到具体的点,这篇文章可以弥补这个缺憾。 Facebook 的产品设计五维 情感 精准定位――设计对受众定位清晰,符合该设计目标用户群的使用体验。 亲和力――所有交互元素的设计上,用户对信息沟通顺畅,感觉似有人一般的亲和感。
现在,凡是稍微大一点的网站,一定有一张个人主页、一堆用户关系、一串动态信息流、一批用户推荐。用户累不累?从facebook和buzz开始,这种累的感觉,越积越多、比比皆是、避之不及,只能逆来顺受。 记得刚开始玩儿论坛的时候(印象最深的两个论坛:既生、天堂海,都关了),设置自己的头像、介绍、签名,重视的不得了,就像在选自己唯一的面具。现在,到一个社区,看见选择头像就烦,随便扔一张系统图片在上面;看见一堆用户推荐...
我老早就写过一个经典的小学几何题。如果你还没看过这个问题,你一定要去看看。一个小学奥数老师曾经告诉我,当年带领学生参加这次竞赛时,领队老师们都没有想到这个问题的“小学生解法”,以至于开始质疑这道题是否超纲了。看到答案后,老师们大为折服――这个问题确实有一个无需任何几何知识的妙解。 今天,同样的事情发生了。今天临时去...
e是一个重要的常数,但是我一直不知道,它的真正含义是什么。...
Google使用Linux建立了价值几十亿美元的搜索平台;每天有超过50万部Android系统设备被激活,而Linux正是Android的基础;HP公司基于Linux开发了WebOS移动手机系统,就像我在开篇所说,HP基于Linux的Touchpad平板设备也将在周五上架销售。实际上,除了Microsoft、Apple和RIM以外,几乎所有公司都有基于Linux开发的产品和平台,如亚马逊的kindle,巴诺的Nook,索尼的相机、电视机和手机,三星的智能TV,Tivo的DVR,宝马汽车等等。在不久的将来,包括Apple和RIM在内的更多的公司,也会在他们的产品中使用到开源代码,而Microsoft或许是唯一的极少使用开源技术的科技公司了。
2011年,各大平台相继开放,相信关注的朋友都应该知道,6月15日,腾讯也召开了开发者大会,在这里笔者不想就开放本身做太多讨论,作为一个技术博客,我们还是专注讨论技术架构吧。笔者在腾讯主要负责腾讯开放openapi的开发,也确实见到了不少应用由于架构不当,导致开发维护成本非常高的例子,更重要的是接入成本非常高导致落在了别的应用后面,所以,笔者在这里会结合腾讯开放的一些特点,给应用开发者一点建议。
Zend Parameters Parser新增类型描述符介绍
这篇文章是我的一个外国的同事Gareth推荐给我的,我和他一起工作过一段时间。他之所以觉得非常不错,是因为这篇文章让他身有体会,他觉得我也一定会有体会,并让我考虑一下翻译到我的blog上来。我看完后觉得很有代表性,而且觉得说得太对了,所以翻译过来,希望大家都读一读,最好转给你的公司老板。 这篇文章来源于 StakeExchange上的一个问题――“为什么BA和PM的薪水要比程序员要高?”,顶在一楼的回复分析了这个原因,并指出...
今天看了一段YUI compressor压缩的js代码: userNum && (ind += index,ind >= userNum && (ind -= userNum),ind < 0 && (ind === -2 && (ind = -1),ind += userNum),selLi.removeClass("on"),$(selLi[ind]).addClass("on")); 直接疯掉了,估计一下子没几个人能看懂。那么就把他“翻译”一下。 && (逻辑与) 这里主要是一个“&...