爬虫之深入了解浏览器
一、爬虫程序与浏览器的差异
造成爬虫程序无法“所见即所得”的主要原因是,很多反爬虫手段利用了浏览器和爬虫程序之间的差异。而差异是浏览器具有
解释HTML、JavaScript和CSS的能力,而爬虫程序不具备。
二、浏览器的主要结构
(1)主要组件:
用户界面:包括地址栏、前进、后退、刷新等按钮、页面主窗口等。
浏览器引擎:负责将用户的操作传递给对于的渲染引擎
渲染引擎:能够调用解释器解释HTML、CSS和JavaScript代码,然后根据解释结果重排页面并绘制渲染树。
HTML解释器:解释HTML代码
JavaScript解释器:解释JavaScipt代码
CSS解释器:解释CSS代码
界面后端:绘制组合框和窗口等基本部件
数据存储:在本地存储一些体积较小的数据,如Cookie、Storage对象等
网络:自动加载HTML文档中所需的其他资源。
HTML、JavaScrpit和CSS代码都需要解释器才能运行。浏览器之所以能够将HTML文本变成内容丰富的网页,就是因为内置了对应
的解释器,否则这些代码只能作为文本出现。