R爬虫必备基础——静态网页+动态网页

通过浏览器访问万维网中的某个网站时会从服务器得到一个超文本标记文档,然后浏览器将文档渲染后展示在显示器上,这就是我们得到的页面。页面中可以包含文本、图像、声音、FLASH动画、客户端脚本(JavaScript)和ActiveX控件等,有些页面还可以注册、登录以及显示当前用户的相关信息。R爬虫的爬取对象通常就是网页,我们需要对网页有基本的认识

浏览器从服务器得到的超文本标记文档的后缀通常分为两大类,静态页面:htm、html、shtml、xml;动态页面:asp、jsp、php、perl、cgi。两者的目标都是呈现内容给用户,都是用超文本标记语言(HTML)表示的,那两者间有什么不同?

静态网页

静态网页是指存放在服务器文件系统中实实在在的HTML文件。当用户在浏览器中输入页面的URL,然后回车,浏览器就会将对应的html文件下载、渲染并呈现在窗口中。早期的网站通常都是由静态页面制作的,现在纯静态网页比较少了。通常,使用HTML或XML即可完成静态页面的制作。

特点

  • 静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀但不是以这些结尾的网页一定就是静态,还有一种伪静态的网页。
  • 静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;
  • 静态网页的内容相对稳定,因此容易被搜索引擎检索;
  • 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
  • 静态网页的交互性较差,在功能方面有较大的限制。
  • 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面。
  • 减轻了服务器的负担,工作量减少,也就降低了数据库的成本。

不足

  • 内容是固定的,交互性差,内容更新维护复杂。
  • 没有自动化的工具,维护大量的静态页面文件是不现实的。
  • 无法充分支持用户/客户的需求(外观选择,浏览器的支持,Cookie)。

案例

如素材中国,静态网页,整体结构清楚简单,从网址上判断,以html后缀结尾,是典型的静态网页。

image

动态网页

动态网页是相对于静态网页而言的。当浏览器请求服务器的某个页面时,服务器根据当前时间、环境参数、数据库操作等动态的生成HTML页面,然后在发送给浏览器(后面的处理就跟静态网页一样了)。很明显,动态网页中的“动态”是指服务器端页面的动态生成,相反,“静态”则指页面是实实在在的、独立的文件。动态网页的生成技术有多种,常见的有:HTML+JavaScript(Node.js);HTML+PHP;HTML+ASP.NET(或ASP);HTML+JSP等。

特征

  • 动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量;
  • 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;
  • 动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
  • 动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。

不足

  • 动态网站用到数据库,所以对数据库的安全和保密性要求较高,要专业技术人员提供维护才能保证网站的安全。
  • 动态网站不利于搜索引擎收录。且制作成本较高。

案例

如丁香通,是个动静态结合网站。下图则是由动态加载生成的网页,从网址上即可判断。

image

再如Pubmed,输入关键词检索lncRNA,得到如下界面,网页地址不是以常规后缀结尾,同时页面信息显示不全,需要手动点击more显示数据,这是典型的动态网页。

image

误区:会动的就是动态页面

在HTML格式的页面上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、翻滚字母等,这些“动态效果”仅仅是有客户端呈现的视觉上的动态,与动态网页并不是同一个概念。

和谐统一

静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站内容的多少,如果网站功能比较简单,内容更新量不是很大,采用纯静态网页的方式会更简单,反之一般要采用动态网页技术来实现。静态网页是网站建设的基础,静态网页和动态网页之间也并不矛盾,为了网站适应搜索引擎检索的需要,即使采用动态网站技术,也可以将网页内容转化为静态网页发布。动态网站也可以采用静动结合的原则,适合采用动态网页的地方用动态网页,如果必要使用静态网页,则可以考虑用静态网页的方法来实现,在同一个网站上,动态网页内容和静态网页内容同时存在也是很常见的事情。

总结一下

  1. 静态网页和动态网页都是网页,目前纯静态的网页比较少了,大多以动态或动静态结合常见。
  2. 静态网页不需要后台程序干预处理,直接由服务器返回,实现为静态网页后,一般不需要维护,因为数据不需要更新。
  3. 动态网页一般需要程序处理(asp,jsp,php,python,ruby等等),并由数据库提供数据支撑。
  4. R爬虫学习过程,先从简单的静态网站开始,再慢慢实践动态网页。

更多内容可关注公共号“YJY技能修炼”~~~

往期回顾
R爬虫在工作中的一点妙用
R爬虫必备基础——HTML和CSS初识

你可能感兴趣的:(R爬虫必备基础——静态网页+动态网页)