检查页面上的元素是否未对真实用户隐藏



使用PHP/Javascript,是否可以检查一个元素(假设一个链接(是否存在,并且实际上对远程网站上的真人可见

我知道可以检查页面源中是否存在链接/元素(通过使用 cURL 或 file_get_contents(( 函数(,但可能会发生元素隐藏在<style="display:none">{element}</style> CSS 样式或类后面或<script>或评论标签之间 - 然后它不会为公共用户显示。

所以我想检查是否有可能找出一个元素在源代码中是否可见,但对实际/真实用户不可见。这可能是不可能的,但想确定..

我看到 2 个选项:

  1. 使用javascript(和jQuery(检查可见性和隐藏标签请参阅:https://api.jquery.com/visible-selector/和 https://api.jquery.com/hidden-selector/

  2. 在 DOMDocument 中重新创建页面并迭代节点以检查使元素不可见的属性。 请参阅:http://php.net/manual/en/class.domdocument.php

第二种选择是一个简短的答案,需要多个步骤才能完成它,我不确定如何,因为我从未自己做过,但研究手册让我说这是可能的。

如果目标是跨域的,你可以通过使用 curl 将外部页面抓取到 php 持有者页面中来实现这一点,然后将该 php 持有者页面加载为 jQuery Ajax 函数和 :hidden 选择器。

持有人.php

 $ch = curl_init("http://www.foo.com/bar");
 $html = curl_exec($ch);
 echo $html;

页面.php或页面.html

 $.get('holder.php', function (data) {
     hidden_tags = $(data).find('a:hidden');
 });

最新更新