使用PHP/Javascript,是否可以检查一个元素(假设一个链接(是否存在,并且实际上对远程网站上的真人可见?
我知道可以检查页面源中是否存在链接/元素(通过使用 cURL 或 file_get_contents(( 函数(,但可能会发生元素隐藏在<style="display:none">{element}</style>
CSS 样式或类后面或<script>
或评论标签之间 - 然后它不会为公共用户显示。
所以我想检查是否有可能找出一个元素在源代码中是否可见,但对实际/真实用户不可见。这可能是不可能的,但想确定..
我看到 2 个选项:
-
使用javascript(和jQuery(检查可见性和隐藏标签请参阅:https://api.jquery.com/visible-selector/和 https://api.jquery.com/hidden-selector/
-
在 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');
});