Excel中怎样计算面积? Excel制作计算圆面积工具的教程-英雄云拓展知识分享
127
2023-11-13
【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第4章,第1节,吕云翔、张扬和韩延刚等编著。
4.1.2 AJAX
AJAX 技术与其说是一种“技术”,不如说是一种“方案”。如上文所述,在网页中使用 JavaScript 加载页面中数据的过程,都可以看作 AJAX 技术。AJAX 技术改变了过去用户浏 览网站时一个请求对应一个页面的模式,允许浏览器通过异步请求来获取数据,从而使得一 个页面能够呈现并容纳更多的内容,同时也就意味着更多的功能。只要用户使用的是主流的 浏览器,同时允许浏览器执行JavaScript, 用户就能够享受网页中的 AJAX 内容。
AJAX 技术在逐渐流行的同时,也面临着一些批评和意见。由于 JavaScript 本身是作为 客户端脚本语言在浏览器的基础上执行的,因此,浏览器兼容性成为不可忽视的问题。另 外,由于 JavaScript 在某种程度上实现了业务逻辑的分离(此前的业务逻辑统一由服务器端 实现),因此在代码维护上也存在一些效率问题。但总体而言,AJAX 技术已经成为现代网 站技术中的中流砥柱,受到了广泛的欢迎。AJAX 目前的使用场景十分广泛,很多时候普通 用户甚至察觉不到网页正在使用AJAX 技术。
以知乎的首页信息流为例(见图4-3),与用户的主要交互方式就是用户通过下拉页面 (具体操作可通过鼠标滚轮、拖动滚动条等实现)查看更多动态,而在一部分动态(对于知 乎而言包括被关注用户的点赞和回答等)展示完毕后,就会显示一段加载动画并呈现后续的 动态内容。此处的页面动画其实只是“障眼法”,在这个过程中, JavaScript 脚本已向服务器 请求发送相关数据,并最终加载到页面之中。这时页面显然没有进行全部刷新,而是只 “新”刷新了一部分,通过这种异步加载的方式完成了对新内容的获取和呈现,这个过程就 是典型的 AJAX应用。
比较尴尬的是,爬虫一般不能执行包括“加载新内容”或者“跳到下一页”等功能在内 的各类写在网页中的 JavaScript 代码。如本节开头所述,爬虫会获取网站的原始 HTML 页 面,由于它没有像浏览器一样的执行 JavaScript 脚本的能力,因此也就不会为网页运行 JavaScript。最终,爬虫爬取到的结果就会和浏览器里显示的结果有所差异,很多时候便不能直接获得想要的关键信息。为解决这个尴尬处境,基于 Python 编写的爬虫程序可以做出两 种改进, 一种是通过分析 AJAX 内容(需要开发者手动观察和实验),观察其请求目标、请求 内容和请求的参数等信息,最终编写程序来模拟这样的 JavaScript 请求,从而获取信息(这个 过程也可以叫作“逆向工程”)。另外一种方式则比较取巧,那就是直接模拟出浏览器环境,使 得程序得以通过浏览器模拟工具“移花接木”,最终通过浏览器渲染后的页面来获得信息。这 两种方式的选择与JavaScript 在网页中的具体使用方法有关,4.2节中将进行具体讨论。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~