php – 如何找到广告的最终目的地(网址)(以编程方式)
这可能是微不足道的,或者不是,但我正在研究一种软件,它将验证通过我的Web应用程序显示的广告的“行尾”域.理想情况下,我有一个我不想提供广告的域名列表(假设Norton.com就是其中之一),但大多数广告网络通过缩短的,含义模糊的URL(adsrv.com)提供广告,最终重定向到Norton.com.所以问题是:有任何一个构建,或者知道如何构建,类似刮刀的工具将返回广告的最终目标网址.
初步发现:某些广告采用Flash,JavaScript或纯HTML格式.模拟浏览器是完全可行的,并且可以对抗不同格式的广告.并非所有Flash或JS广告都有noflash或noscript替代品. (浏览器可能是必要的,但如上所述,这非常好……使用像WatiN或WatiR或WatiJ或Selenium等的东西……) 喜欢开源,这样我就可以自己重建一个.真的很感激帮助! 编辑*此脚本需要点击广告,因为它可能是Flash,JS或只是HTML plain.因此Curl不太可能是一个选项,除非Curl可以点击? 解决方法
示例PHP实现:
$k = curl_init('http://goo.gl'); curl_setopt($k,CURLOPT_FOLLOWLOCATION,true); // follow redirects curl_setopt($k,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 ' . '(KHTML,like Gecko) Chrome/7.0.517.41 Safari/534.7'); // imitate chrome curl_setopt($k,CURLOPT_NOBODY,true); // HEAD request only (faster) curl_setopt($k,CURLOPT_RETURNTRANSFER,true); // don't echo results curl_exec($k); $final_url = curl_getinfo($k,CURLINFO_EFFECTIVE_URL); // get last URL followed curl_close($k); echo $final_url; 哪个应该返回类似的东西 注意:如果要可靠地遵循HTTPS / SSL,则可能需要使用curl_setopt()来关闭CURLOPT_SSL_VERIFYHOST和CURLOPT_SSL_VERIFYPEER (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |