Web Browser DIY

此文是希望使用开源软件打造一个自己专属的webkit内核浏览器!

[TOC]

什么是浏览器?

wiki的解释如下:

网页浏览器(英语:Web browser),是个显示网站服务器或文件系统内的文件,并让用户与此些文件交互的一种应用软件。它用来显示在万维网或局域网等内的文字、图像及其他信息。这些文字或图像,可以是连接其他网址的超链接,用户可迅速及轻易地浏览各种信息。大部分网页为HTML格式。有些网页由于使用了某个浏览器特定的语法,只有那个浏览器才能正确显示。

支持功能(转自wiki)

标准

HTTP(超文本传输协议)和HTTPS(加密的HTTP) HTML(超文本链接标记语言),XHTML(可扩展的超文本标记语言)及XML(可扩展标记语言) 图形文件格式如GIF、PNG、JPEG、SVG CSS(层叠样式表) JavaScript(动态网页DHTML) Cookie让网站可以追踪浏览者 数字证书 Adobe Flash Player Java applet Favicons 无线应用协议 SSL数据加密传输 WebGL HTML5

基本

书签管理 下载管理 网页内容高速缓存 通过第三方插件(plugins)支持多媒体 分页浏览

高级

网址和窗体数据自动完成 不同网站的账号密码管理 同步:书签、窗体数据、账号、密码 禁止弹出式广告 广告过滤 阻挡恶意代码

例子

以360极速浏览器为例子,大家可能会以为该浏览器与chrome浏览器有关,其实关系不大,360极速浏览器是基于Chromium改的,而Chromium也是chrome背后的浏览器,chrome也是基于Chromium改进的,所以说360极速浏览器其实和chrome是兄弟关系啊!再来看看Chromium,原来Chromium是基于webkit内核(v28之前,现为Blink)开发的!

wiki对webkit的词条如下

WebKit是一个排版引擎,主要设计是用来让网页浏览器绘制网页。 WebKit目前作为Apple Safari及Google Chrome(直到版本27)等浏览器的主要引擎。根据StatCounter[3]的浏览器市场份额调查,于2012年11月,Webkit市占超过了40%,它已经成为拥有最大市场份额的排版引擎,超越了Internet Explorer所使用的Trident及Firefox所使用的Gecko引擎。Webkit也作为一些实验性质浏览器的基础引擎,包含Amazon Kindle 电子书阅读器,同时也使用在下列行动操作系统的默认浏览器,包含苹果电脑iOS、Android, BlackBerry Tablet OS、Bada、Tizen及webOS 。WebKit的C++应用程序接口提供了一系列的Class让我们可以在视窗上显示网页内容,并且实现了一些浏览器的特色,包含使用者连结点击、管理前后页面列表以及使用者曾经拜访过的历史页面等等。

原来webkit处理的是网页的排版啊!(ps.你们知道开源的webkit是那个公司的吗?答案可能会大吃一惊!)

综上

一个浏览器可以分为两部分,内核+扩展功能,内核负责排版,解释js等底层和抽象的工作,而扩展就是把收藏夹、下载等功能做好就OK。

做一个自己的浏览器?

没错!浏览器的内核是开源的,为什么不试试呢?windows和linux下都能编译,编译完后可以使用Python来操作浏览器,cookie,js等不用操心,都交给webkit,你只需要操作html控件去填充数据,抓取数据即可!别说微博数据了,抓取百度指数都可以说是尽收眼底!