解析文档时是不是可以检测 HTML 元素的位置(页脚、侧边栏)?
Posted
技术标签:
【中文标题】解析文档时是不是可以检测 HTML 元素的位置(页脚、侧边栏)?【英文标题】:Is it possible to detect position (footer, sidebar) of HTML element when parsing document?解析文档时是否可以检测 HTML 元素的位置(页脚、侧边栏)? 【发布时间】:2011-12-18 12:25:47 【问题描述】:我正在尝试开发一个脚本(在 php 中)来分析网页,并想知道是否可以检测页面上图像或链接的位置,无论它是否位于 a) 顶部/底部页面或b)在左侧/右侧以及页面的上半部分/下半部分。我想知道是否有任何准确的方法来解析 html 并准确检测这些元素在页面上显示的位置。
【问题讨论】:
@Dagon 是否已经有一个现有的解决方案可用于在解析时识别元素的位置,那么如果是这样,你能否指出我正确的方向......对不起,如果我在这里遗漏了一些明显的东西 【参考方案1】:没有傻瓜证明方法。因为不同的浏览器会在不同的屏幕上呈现不同的效果。这是一个最适合使用在客户端浏览器上运行的 javascript 的过程。
您需要服务器位置的原因是什么?
实现它的几种方法(我想不到)...
1) 在后台生成 IE 或 firefox(或任何浏览器),使用 javascript 获取位置,然后将其传递给 php 脚本?
2)下载并编译网站库并编写一个php模块(插件)来处理这个?
3) 是否在客户端用javascript计算位置,并使用AJAX将位置传回服务器?
4) 重做网页,让我们不用关心位置?
【讨论】:
如果 Javascript 是唯一可靠的方法,那么您会推荐哪种方法能够自动模拟浏览器并运行 javascript 来提取数据,是否有这种可能性?我希望脚本在我的服务器上自动运行,而不必依赖我的物理浏览器来获取数据,那么有什么方法可以在服务器端自动模拟浏览器 嗯,javascript在浏览器中运行,页面渲染完成后,就可以获取位置了。但是,您需要考虑客户将使用的不同浏览器,因为不同的浏览器呈现不同的内容。 (著名的 IE7....) 取决于您运行的服务器。如果是windows并且你想使用IE,只需从PHP生成IE并让它渲染页面,然后获取位置。如果你想使用 chrome 或 safari,你可以考虑使用 webkit.net 库并在 .net 中编写程序来获取位置 如果是 linux,您可能需要研究一些浏览器如何实现自动化。因为在 windows 中你有 OLE 和 ActiveXs 但我对 linux 不太确定。 谢谢,会做一些研究来弄清楚,Linux 上的服务器 rus 所以需要找出如何使用这个操作系统自动化这个过程以上是关于解析文档时是不是可以检测 HTML 元素的位置(页脚、侧边栏)?的主要内容,如果未能解决你的问题,请参考以下文章