通过编程检查远程网站'一个特定的HTML元素


checking programmatically that a remote websites 'shows' a particular html element

我想要求我的免费用户添加一个链接到我的网站。但是,我想通过编程检查它是否确实添加了我提供的linkback html元素,并且没有被某种CSS和Javascript隐藏。

有什么好的建议吗?

我不是这方面的专家,但我想说最简单和最可靠的方法是在浏览器中实际呈现页面,以确保所有的CSS和JavaScript都以用户看到的方式应用。

显然你不想自己这样做,但我假设你的网站有一个页面,用户告诉你他们已经添加了链接到它,或者他们要求免费使用该链接。此时,你可以将他们的页面加载到一个隐藏的IFrame中,然后使用JavaScript (JQuery无疑是最简单的)来找到你的链接并查询其可见性。

这可能会因跨域安全问题(访问IFrame的内容)而变得复杂,但服务器上的代理可以轻松解决这个问题。

如果不使用浏览器和JavaScript,我可以想象这将是一个巨大的工作来解析他们的HTML, CSS和JavaScript服务器端,并寻找任何提示,你的链接是不可见的-因为有很多方法可以隐藏它(甚至是意外)。

$my_link = '<a href="http://www.myamazingsite.com/" title="Magic Stuff">Total Amazing Magic Tricks</a>';
$remote_html = file_get_contents('http://www.remotesite.com/some-amazing-page.php');
if(strpos($remote_html, $my_link) === false){
    // link was not found
}

除非你有足够的计算能力和编程知识来设置模拟,否则你将无法轻易地判断链接是否被CSS或JS隐藏。