微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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://www.google.com/accounts/ServiceLogin?service=urlshortener\u0026amp;continue=http://goo.gl/?authed=1\u0026amp;followup=http://goo.gl/?authed=1\u0026amp;passive=真放,去= TRUE

注意:如果要可靠地遵循HTTPS / SSL,则可能需要使用curl_setopt()来关闭CURLOPT_SSL_VERIFYHOST和CURLOPT_SSL_VERIFYPEER

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐