爬虫遇到动态HTML的情况

1、JavaScript

JavaScript 是网络上最常用也是支持者最多的客户端脚本语言。它可以收集 用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页游戏。
我们可以在网页源代码的标签里看到,比如:


2、jQuery

jQuery 是一个十分常见的库,70% 最流行的网站和约 30% 的其他网站都在使用。一个网站使用 jQuery 的特征,就是源代码里包含了 jQuery 入口。
如果你在一个网站上看到了 jQuery,那么采集这个网站数据的时候要格外小心。jQuery 可 以动态地创建 HTML 内容,只有在 JavaScript 代码执行之后才会显示。如果你用传统的方 法采集页面内容,就只能获得 JavaScript 代码执行之前页面上的内容。


3、Ajax

我们与网站服务器通信的唯一方式,就是发出 HTTP 请求获取新页面。如果提交表单之后,或从服务器获取信息之后,网站的页面不需要重新刷新,那么你访问的网站就在用Ajax 技术。

4、DHTML

DHTML 是用客户端语言改变页面的 HTML 元素(HTML、CSS,或者二者皆 被改变)。比如页面上的按钮只有当用户移动鼠标之后才出现,背景色可能每次点击都会改变,或者用一个 Ajax 请求触发页面加载一段新内容,网页是否属于DHTML,关键要看有没有用 JavaScript 控制 HTML 和 CSS 元素。

Python 解决这个问题只有两种途径:
(1) 直接从 JavaScript 代码里采集内容
(2) 用 Python 的 第三方库运行 JavaScript,直接采集你在浏览器里看到的页面(这个比较好)。

你可能感兴趣的:(爬虫遇到动态HTML的情况)