php 抓取网页ajax数据(HTML文档加载过程中的常见问题,你知道吗?)

优采云 发布时间: 2022-01-08 23:13

  php 抓取网页ajax数据(HTML文档加载过程中的常见问题,你知道吗?)

  如何抓取AJAX网站的内容?这是一个热门问题,也是一个棘手的问题。基于Javascript技术的AJAX网站的出现,改变了互联网原有内容的展示方式。过去,从浏览器的角度来看,网站要显示的内容是一个HTML页面文档。静态网页或服务器动态网页(如PHP、JSP、ASP等)下载到浏览器后都是HTML文档。网站 内容抓取器的搜索引擎或网络爬虫只需要处理文本内容(HTML 文档就是文本文档),因此在之前的 网站 内容抓取器中广泛使用正则表达式,但是,正则表达式是对 AJAX 网站 内容几乎没用,类似于 AJAX 网站 内容呈现的原则是相关的。AJAX网站页面上除了普通的HTML文档内容外,还有Javascript代码或者可以下载Javascript代码库的地址。Javascript 在 HTML 文档的加载过程中或完成后(通常受 load 事件限制)调用修改 HTML 文档的 DOM 结构的函数或代码片段,这是在浏览器窗口中显示 HTML 文档的基础,并以这种方式动态生成页面内容。内容可以从服务器异步计算或获取,例如使用XMLHt pRequest对象从远程服务器获取需要显示的内容。还有Javascript代码或者可以下载Javascript代码库的地址。Javascript 在 HTML 文档的加载过程中或完成后(通常受 load 事件限制)调用修改 HTML 文档的 DOM 结构的函数或代码片段,这是在浏览器窗口中显示 HTML 文档的基础,并以这种方式动态生成页面内容。内容可以从服务器异步计算或获取,例如使用XMLHt pRequest对象从远程服务器获取需要显示的内容。还有Javascript代码或者可以下载Javascript代码库的地址。Javascript 在 HTML 文档的加载过程中或完成后(通常受 load 事件限制)调用修改 HTML 文档的 DOM 结构的函数或代码片段,这是在浏览器窗口中显示 HTML 文档的基础,并以这种方式动态生成页面内容。内容可以从服务器异步计算或获取,例如使用XMLHt pRequest对象从远程服务器获取需要显示的内容。Javascript 在 HTML 文档的加载过程中或完成后(通常受 load 事件限制)调用修改 HTML 文档的 DOM 结构的函数或代码片段,这是在浏览器窗口中显示 HTML 文档的基础,并以这种方式动态生成页面内容。内容可以从服务器异步计算或获取,例如使用XMLHt pRequest对象从远程服务器获取需要显示的内容。Javascript 在 HTML 文档的加载过程中或完成后(通常受 load 事件限制)调用修改 HTML 文档的 DOM 结构的函数或代码片段,这是在浏览器窗口中显示 HTML 文档的基础,并以这种方式动态生成页面内容。内容可以从服务器异步计算或获取,例如使用XMLHt pRequest对象从远程服务器获取需要显示的内容。

  网站内容爬取软件工具包Met aSeeker直接分析DOM结构,使用XPath表达式定位爬取内容,使用XSLT对爬取结果进行转换,所以本质上更容易解决爬取问题AJAX网站 内容。但是,Javascript 是一种强大的编程语言,其实现业务逻辑的能力远高于 HTML。动态生成网站内容的方式是千变万化的,所以Met aSeeker只能分阶段逐步支持AJAX网站内容,在每个版本中都会加入新的功能来解决新出现的爬取问题发现了AJAX的实现方式。从版本 V1. 开始,MetaSeeker 能够抓取 HTML 页面加载过程中 AJAX 生成的动态内容,例如,抓取 Google Adsence 广告或搜索结果以进行商业智能分析。此版本增强了抓取 AJAX 网站 内容的能力。如果这些动态内容是在加载 HTML 页面后生成的,则必须使用本节介绍的方法进行爬取。此方法也适用于使用 Javascript 函数进行爬取。(例如,设置超时或设置间隔)定期刷新网页内容。手动刷新 DOM Met aStudio 左侧栏中的 DOM 树是在 HTML 文档加载后自动生成的。如果 HTML 文档中的 Javascript 代码在 HTML 加载后修改了 DOM 内容,则可能不会反映在 Met aStudio 的 DOM 树中。出来吧,这时候如果你用反选功能定位页面内容,会弹出一个提示框:Cannot find henode。

  这需要手动刷新 DOM 树以反映最新更改。点击菜单项H3,定义网站内容抓取规则< h3> 无论是数据抓取规则还是超链接抓取规则,定义方法与普通网页相同,见上一章。但是,在上传信息结构和爬取规则之前,需要点击菜单项。这是一个检查菜单。不勾选,说明信息结构是为AJAX网页定义的,网页内容只有在HTML文档加载后。因此,修改和呈现不能采用常见的操作方法:“加载信息结构,立即应用信息结构分析网页内容”。在加载信息结构进行编辑时反映操作的变化。信息结构加载方法 如果需要编辑之前定义的信息结构,需要在Schema List工作台上进行加载操作。如果遇到上一节描述的信息结构,网站内容抓取规则定义工具MetaStudio会弹出对话框:信息结构加载和分析有延迟,请手动选择菜单项“后续分析"加载分析,提示用户:信息结构虽然已经下载,但还没有用于分析目标页面,需要手动点击菜单项。这是为了让 MetaSt udio 等待 Javascript 修改 DOM,

<p>网站内容抓取器DataScraper的操作DataScraper的操作没有变化。实际上,DataScraper 工作流使用专用处理器 LoadDelayedPage 来抓取此类内容。另外,由于在爬取此类网站内容时无法根据加载事件判断爬取过程是否可以启动或终止,因此需要不断检测信息结构是否符合目标网页直到超时,因为定义

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线