使用PHP / Javascript,是否可以检查远程网站上的某个元素(例如链接)是否存在并且实际上是真人?
我知道可以检查页面源中是否存在链接/元素(通过使用cURL或file_get_contents()函数),但是可能会发生元素隐藏在<style="display:none">{element}</style>
CSS样式后面或类或<script>
或评论标签之间 - 然后它不会显示给公共用户。
所以我想检查是否可以找出元素在源代码中是否可见,但对于实际/真实用户是不可见的。这可能是不可能的,但想确保......
答案 0 :(得分:1)
我看到两个选项:
使用javascript(和jQuery)检查可见性和隐藏标签 请参阅:https://api.jquery.com/visible-selector/和https://api.jquery.com/hidden-selector/
在DOMDocument中重新创建页面并迭代节点以检查使元素不可见的属性。见:http://php.net/manual/en/class.domdocument.php
第二个选项是一个简短的答案,它需要多个步骤来完成它,我不知道如何,因为我自己从未做过,但研究手册让我说它是可能的。
答案 1 :(得分:1)
如果目标是跨域的,你可以通过使用curl
将外部页面抓取到php持有者页面,然后将该php持有者页面作为jQuery Ajax函数和:hidden
选择器加载来实现此目的
<强> holder.php 强>
$ch = curl_init("http://www.foo.com/bar");
$html = curl_exec($ch);
echo $html;
page.php或page.html
$.get('holder.php', function (data) {
hidden_tags = $(data).find('a:hidden');
});