怎样抓取AJAX网站的内容

 我来答
就烦条0o
2016-04-03 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
手工刷新DOM

MetaStudio左栏DOM树是在HTML文档加载完自动生成的,如果HTML文档中的Javascript代码在HTML加载完又修改了DOM内容,很有可能在MetaStudio的DOM树中没有体现出来,此时,如果使用反向选择功能定位页面内容,就会弹出提示框:Cannot find the node。这就需要手工刷新DOM树,将最新改变体现出来。点击菜单项文件->刷新DOM达到该目的。

无论数据抓取规则还是超链接抓取规则,与普通网页的定义方法一致,参见前面章节。但是,在上载信息结构和抓取规则之前,需要点击菜单项配置->自动套用,这是一个check类菜单,不要勾选,表示该信息结构是为AJAX网页定义的,而且网页内容是在加载完HTML文档后才修改和展现,所以,不能采用普通的操作方式:“加载信息结构即刻套用信息结构分析网页内容”。操作的变化体现在加载信息结构进行编辑的时候。

信息结构加载方法

如果需要编辑以前定义的信息结构,那么需要在Schema List工作台上执行加载操作。如果遇到上节讲述的信息结构,网站内容抓取规则定义工具MetaStudio会弹出一个对话框:信息结构加载和分析延后执行,请手工选择菜单项“后续分析”进行加载和分析,提示用户:信息结构虽然已经下载下来了,但是还没有用它来分析目标页面,需要手动点击菜单项文件->后续分析,这是为了让MetaStudio等待Javascript修改DOM,操作员观察MetaStudio内嵌的浏览器,直到需要的内容都看到了,才点击该菜单,完成DOM刷新和信息结构套用分析。

网站内容抓取器DataScraper的操作

DataScraper的操作没有任何变化,实际上,DataScraper工作流使用了专用的处理器LoadDelayedPage抓取这类内容。另外,由于抓取这类网站内容时不能根据load事件判断是否可以开始或者终止抓取过程,所以,需要持续地探测信息结构是否符合目标网页结构,直到超时为止,因此,

当遇到不符合信息结构的网页时,抓取耗用时间被拉长
定义网站内容抓取规则时,至少为一个信息属性设置key特性。

启闭周期性刷新的网页的DOM解析
缺省情况下,网站内容抓取规则生成工具MetaStudio左栏的DOM结构是自动刷新的,每当目标样本页面的内容发生改变,MetaStudio
的DOM结构也自动跟着刷新,如果正在为这个样本页面定义信息结构,自动刷新将影响定义操作,所以,遇到这种情况需要关闭DOM自动刷新,点击菜单项配置->自动刷新DOM,这是一个check菜单,不打勾就关闭了自动刷新。
ji...0@163.com
2018-07-06 · 知道合伙人软件行家
ji...0@163.com
知道合伙人软件行家
采纳数:12 获赞数:17
荣获北京科思诚科技有限公司2016年度优秀员工称号。

向TA提问 私信TA
展开全部
整个网站只有一张网页,采用Ajax技术,根据用户的输入,加载不同的内容。

这种做法的好处是用户体验好、节省流量,缺点是AJAX内容无法被搜索引擎抓取。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式