ajax抓取网页内容(3.3.2.8怎样抓取AJAXAJAX网站的内容?(一))
优采云 发布时间: 2021-09-28 04:00ajax抓取网页内容(3.3.2.8怎样抓取AJAXAJAX网站的内容?(一))
3.3.2.8AJAX 如何抓取AJAX网站的内容?这是一个热点问题,也是一个棘手的问题。基于Javascript技术的AJAX网站的出现,改变了原来互联网内容的展示方式。以前在浏览器中,网站显示的内容是HTML页面文件,无论是静态网页还是服务器动态网页(比如PHP、JSP、ASP上传后都是HTML文件对浏览器、搜索引擎或内容爬虫的网络爬虫只需要处理文本内容(HTML文档是一个文本文档)。因此,正则表达式在内容抓取器中广泛使用网站。但是,正则表达式几乎AJAX网站 内容不可能,类似于 AJAX网站 内容。显示原理是相关的。除了AJAX网站页面上普通的HTML文档内容,还有Javascript代码或者Javascript代码库地址可以下载。HTML文件加载期间或之后(通常加载事件是Boundary)调用Javascript函数或代码段,这些代码段修改HTML文档的DOM结构,DOM是基于浏览器窗口中显示的HTML文档,并且页面内容是通过这种方式动态生成的。这些内容可以是计算出来的,也可以是从服务器异步获取的,比如使用XMLHttpRequest对象从远程服务器获取需要显示的内容。还有Javascript代码或者Javascript代码库地址可以下载。HTML文件加载期间或之后(通常加载事件是Boundary)调用Javascript函数或代码段,这些代码段修改HTML文档的DOM结构,DOM是基于浏览器窗口中显示的HTML文档,并且页面内容是通过这种方式动态生成的。这些内容可以是计算出来的,也可以是从服务器异步获取的,比如使用XMLHttpRequest对象从远程服务器获取需要显示的内容。还有Javascript代码或者Javascript代码库地址可以下载。HTML文件加载期间或之后(通常加载事件是Boundary)调用Javascript函数或代码段,这些代码段修改HTML文档的DOM结构,DOM是基于浏览器窗口中显示的HTML文档,并且页面内容是通过这种方式动态生成的。这些内容可以是计算出来的,也可以是从服务器异步获取的,比如使用XMLHttpRequest对象从远程服务器获取需要显示的内容。这些代码段修改了 HTML 文档的 DOM 结构,DOM 是基于浏览器窗口中显示的 HTML 文档,通过这种方式动态生成页面内容。这些内容可以是计算出来的,也可以是从服务器异步获取的,比如使用XMLHttpRequest对象从远程服务器获取需要显示的内容。这些代码段修改了 HTML 文档的 DOM 结构,DOM 是基于浏览器窗口中显示的 HTML 文档,通过这种方式动态生成页面内容。这些内容可以是计算出来的,也可以是从服务器异步获取的,比如使用XMLHttpRequest对象从远程服务器获取需要显示的内容。
网站 内容采集软件工具包MetaSeeker直接分析DOM结构,使用XPath表达式定位采集到的内容,并使用XSLT对采集结果进行转化。因此,从本质上讲,解决AJAX 网站 内容爬取问题相对容易。然而,Javascript 是一种强大的编程语言。实现业务逻辑的能力远高于HTML语言。动态生成网站 内容的方式是千变万化的。因此,MetaSeeker 只能分阶段逐步支持 AJAX网站 内容。抓取,每个版本都会增加新的功能,解决新发现的AJAX实现方式带来的抓取问题。从 V1.0 版本开始,MetaSeeker 可以在 HTML 页面加载过程中捕获 AJAX 生成的动态内容,例如捕获 Google Adsence 广告或搜索结果以进行商业智能分析。此版本增强了捕获 AJAX网站 内容的能力。如果这些动态内容是在加载 HTML 页面后创建的,则必须使用本节中介绍的方法来捕获它。此方法也适用于使用 Javascript 函数(例如 setTimeout 或 setInterval)进行爬行,定期刷新网页内容的页面。DOM MetaStudio 是在加载 HTML 文档后自动生成的。如果 HTML 文档中的 Javascript 代码是在加载 HTML 并修改 DOM 内容后加载的,则可能不会反映在 MetaStudio 的 DOM 树中。此时,
无论是数据抓取规则还是超链接抓取规则,都与普通网页的定义方法一致,请参考前面的章节。但是,在上传信息结构和抓取规则之前,您需要单击菜单项。这是一个检查类型的菜单。不要检查它。意思是为AJAX网页定义了信息结构,网页的内容只有在HTML文档加载之后。修改和显示,因此不能采用正常的操作方法:“加载信息结构,立即应用信息结构分析网页内容”。操作的变化在加载信息结构进行编辑时体现。如果需要编辑之前定义的信息结构,您需要在 Schema List 工作台上执行加载操作。如果遇到上一节描述的信息结构,网站内容捕获规则定义工具MetaStudio会弹出一个对话框:信息结构加载和分析会延迟,请手动选择菜单项“后续”分析”加载分析,提示用户:虽然已经下载了信息结构,但是还没有用于分析目标页面。您需要手动单击菜单。这是让 MetaStudio 等待 Javascript 修改 DOM。操作员观察嵌入在 MetaStudio 中的浏览器,直到需要它为止。看到内容后,点击菜单完成DOM刷新和信息结构应用分析。DataScraper DataScraper' s操作没有改变。实际上,DataScraper 工作流使用专用处理器 LoadDelayedPage 来捕获此类内容。
另外,由于这类网站内容无法根据load事件判断是否可以启动或终止爬取过程,需要不断检测信息结构是否符合目标网页结构,直到超时发生。因此,关键特性服务器上有一个主题_fuller,可以使用MetaStudio加载信息结构,体验AJAX网站内容的抓取。关于这个案例的详细描述,请参考论坛讨论。DOM 默认情况下,网站 内容抓取规则生成工具MetaStudio左栏的DOM结构会自动刷新。每当目标示例页面的内容发生变化时,MetaStudio 的 DOM 结构也会自动刷新。此示例页面定义了信息结构。自动刷新会影响定义操作。因此,在这种情况下,您需要关闭 DOM 自动刷新。单击菜单项 DOM。这是一个检查菜单。如果你不勾选它,你将关闭自动刷新。