javascript читать названия объявлений

Проблема в AdSence: они не сообщают вам, какая реклама показывается, а какая нет, потому что много рекламы, которую я не хочу, чтобы она показывала, потому что в ней есть некоторый контент, который противоречит нашей политике сообщества, например девушки в бикини или Vigra Ads или многие другие.

Идея решения Я хотел узнать, можно ли через javascript прочитать, какие объявления AdSense показываются на моем веб-сайте. ну причина, по которой я спросил, в том, что они используют iframe для рекламы. все, что я хочу сделать, это прочитать там показ рекламы и зарегистрировать ее. который я могу позже просмотреть, если мне нужно заблокировать тысячу объявлений или нет. я мог бы даже просто поместить ссылку на рекламу отчетов, которая будет автоматически отображать названия текущих объявлений.

Маленький пример кода

  var iframeID = jQuery('iframe').attr('id');           

        console.log(document.getElementById(iframeID).contentWindow.document.body.innerHTML);

    output:
    <script>(function(){window.ss=function(d,e){window.status=d;var c=document.getElementById(e);if(c){var a;a=c.href;var b=a.match("^(.*)([?|&]nm=)([^&]*)(.*)$");if(b){b[3]=(Number(b[3])||0)+1;b[0]="";a=b.join("")}else a=a+"&nm=1";c.href=a}return true};})();function su(id) {var a = document.getElementById(id);var b = (new Date()).getTime();if (a && a.myt && b) {var t = b - a.myt;var bi = a.href.indexOf("&clkt=");if (bi > 0) {var c = a.href.substring(0, bi+6); var d = a.href.substring(bi+6, a.href.length);var ei = d.indexOf("&");var r = '';if (ei >= 0)r = d.substring(ei, d.length);a.href = c + t + r; } else {a.href += "&clkt=" + t;}}return true;}function cs(){window.status='';} function jcc(a) {pha=document.getElementById(a); nc=pha.href.indexOf('&jca='); if(nc>=1) return; jca=(401)+(344)-(324); if (a=='aw0') {jca+=(6844);} else {jca=0;} phb=pha.href+'&jca='+jca; pha.href=phb;} function st(id) {var a = document.getElementById(id);if (a) {a.myt = (new Date()).getTime();}return true;}function ha(a){  var pha=document.getElementById(a);var nhi=pha.href.indexOf("&nh=");if(nhi < 1) {pha.href+="&nh=1";}su(a); jcc(a); }function ca(a) {  var pha=document.getElementById(a);var nci=pha.href.indexOf("&nc=");if(nci < 1) {pha.href+="&nc=1";}su(a); jcc(a); top.location.href=document.getElementById(a).href;}function ga(o,e) {if (document.getElementById) {a=o.id.substring(1);p="";r="";g=e.target;if (g) {t=g.id;f=g.parentNode;if (f) {p=f.id;h=f.parentNode;if (h)r=h.id;}} else {h=e.srcElement;f=h.parentNode;if (f)p=f.id;t=h.id;}if (t==a||p==a||r==a)return true;var pha=document.getElementById(a);var nbi=pha.href.indexOf("&nb=");if(nbi < 1) {pha.href+="&nb=1";}su(a); jcc(a); top.location.href=document.getElementById(a).href;}}</script><script>document.close();</script>

когда я просматриваю код iframe в консоли, этот вышеприведенный код находится в заголовке, а в теле есть все объявления

following is the iframe code which i preview in console:
<html>
<head>
<style>
a:link,a:visited,a:hover,a:active {
    color: #0000ff;
    cursor: pointer;
}

body,table,div,ul,li {
    font-size: 10px;
    margin: 0px;
    padding: 0px
}

body {
    background-color: transparent;
    font-family: verdana, arial, sans-serif;
    height: 100%
}

#aus {
    height: 250px;
    width: 300px
}

#ads {
    left: 0px;
    position: absolute;
    top: 0px;
    width: 300px
}

#ads ul {
    list-style: none;
}

#ads ul li {
    clear: both;
    float: left;
    height: 232px;
    margin: 0px 21px 0px 21px;
    overflow: hidden;
    width: 258px
}

.ad {
    margin: 0px 0px
}

.adt {
    font-size: 13px;
    font-weight: bold;
}

.adb {
    color: #000000;
    display: block;
    font-size: 13px;
}

.adu {
    color: #009900;
    font-size: 10px;
    line-height: 12px;
    overflow: hidden;
    white-space: nowrap
}

.adus {
    cursor: pointer;
}

.adc {
    height: 232px;
    overflow: hidden;
    table-layout: fixed;
    width: 100%
}

#ainw {
    left: 3px;
    position: absolute;
    top: 235px
}

#abgi {
    left: 202px;
    position: absolute;
    top: 233px
}

#aubg {
    background-color: #ffffff;
    border: 0px solid #ffffff;
    height: 250px;
    width: 300px
}
</style>
<script>(function(){window.ss=function(d,e){window.status=d;var c=document.getElementById(e);if(c){var a;a=c.href;var b=a.match("^(.*)([?|&amp;]nm=)([^&amp;]*)(.*)$");if(b){b[3]=(Number(b[3])||0)+1;b[0]="";a=b.join("")}else a=a+"&amp;nm=1";c.href=a}return true};})();function su(id) {var a = document.getElementById(id);var b = (new Date()).getTime();if (a &amp;&amp; a.myt &amp;&amp; b) {var t = b - a.myt;var bi = a.href.indexOf("&amp;clkt=");if (bi &gt; 0) {var c = a.href.substring(0, bi+6); var d = a.href.substring(bi+6, a.href.length);var ei = d.indexOf("&amp;");var r = '';if (ei &gt;= 0)r = d.substring(ei, d.length);a.href = c + t + r; } else {a.href += "&amp;clkt=" + t;}}return true;}function cs(){window.status='';} function jcc(a) {pha=document.getElementById(a); nc=pha.href.indexOf('&amp;jca='); if(nc&gt;=1) return; sv=String.fromCharCode(49,49,51,56,57,55,49,56,51); sv=sv.slice(0,4); jca=(4446)+parseInt(sv); if (a=='aw0') {jca+=(-929);} else {jca=0;} phb=pha.href+'&amp;jca='+jca; pha.href=phb;} function st(id) {var a = document.getElementById(id);if (a) {a.myt = (new Date()).getTime();}return true;}function ha(a){  var pha=document.getElementById(a);var nhi=pha.href.indexOf("&amp;nh=");if(nhi &lt; 1) {pha.href+="&amp;nh=1";}su(a); jcc(a); }function ca(a) {  var pha=document.getElementById(a);var nci=pha.href.indexOf("&amp;nc=");if(nci &lt; 1) {pha.href+="&amp;nc=1";}su(a); jcc(a); window.open(document.getElementById(a).href);}function ga(o,e) {if (document.getElementById) {a=o.id.substring(1);p="";r="";g=e.target;if (g) {t=g.id;f=g.parentNode;if (f) {p=f.id;h=f.parentNode;if (h)r=h.id;}} else {h=e.srcElement;f=h.parentNode;if (f)p=f.id;t=h.id;}if (t==a||p==a||r==a)return true;var pha=document.getElementById(a);var nbi=pha.href.indexOf("&amp;nb=");if(nbi &lt; 1) {pha.href+="&amp;nb=1";}su(a); jcc(a); window.open(document.getElementById(a).href);}}</script>
</head>
<body>
<div id="aus">
<div id="aubg"></div>
<div id="ads">
<ul id="ads0">
    <li onmouseover="ss('','aw0')" onfocus="ss('','aw0')" id="taw0">
    <div class="ad">
    <table cellspacing="0" cellpadding="0" border="0" class="adc">
        <tbody>
            <tr>
                <td valign="middle"><a target="_blank"
                    onmouseover="return ss('','aw0')" onmousedown="st('aw0')"
                    onfocus="ss('','aw0')" onclick="ha('aw0')" id="aw0"
                    href="http://googleads.g.doubleclick.net/aclk?sa=L&amp;ai=ByWWG079CTeSRJI2MsgaAx93rBaCluFLmxLGnBsCNtwHAqQcQARgBIL39zQo4AFDVluesBWDL9LQFsgEQYmFzaXQuaXJlc2FsYS5pbboBCjMwMHgyNTBfYXPIAQHaASNodHRwOi8vYmFzaXQuaXJlc2FsYS5pbS9wUDJFU3NBYUpocuABAqkCigtjQVkTpT7gAgDqAhtzb2NpYWxfbWVkaWFfZGV0YWlsXzMwMHgyNTCQA_wHmAOkA6gDAcgDF-gDhAf1AwAAAMTgBAE&amp;num=1&amp;sig=AGiWqty6HglfRNFl5bjFjEG438XjgFQw3w&amp;client=ca-pub-&amp;adurl=http://www.gepaelk.com"
                    class="adt"><span>Reaktif Güç Kont. Rölesi</span></a>
                <div class="adb">Kompanzasyonda kesin çözüm. Klasik ve
                Thiristörlü çözümler.</div>
                <div class="adu"><span onmousedown="st(this.id.substr(1))"
                    onclick="ga(this,event)" id="uaw0" class="adus">www.gepaelk.com</span></div>
                </td>
            </tr>
        </tbody>
    </table>
    </div>
    </li>
</ul>
</div>
<img width="11" height="11"
    src="http://pagead2.googlesyndication.com/pagead/images/ainw_000000.gif"
    id="ainw" alt="">
<div id="abgi"><a target="_blank"
    href="http://www.google.com/url?ct=abg&amp;q=https://www.google.com/adsense/support/bin/request.py%3Fcontact%3Dabg_afc%26url%3Dhttp://basit.iresala.im/pP2ESsAaJhr%26hl%3Dtr%26client%3Dca-pub-%26adU%3Dwww.gepaelk.com%26adT%3DReaktif%2BG%25C3%25BC%25C3%25A7%2BKont.%2BR%25C3%25B6lesi%26gl%3DPK&amp;usg=AFQjCNGXuz2ZcyVIMFSpO3el2DEDVHZQkw"><img
    width="96" height="16" border="0"
    src="http://pagead2.googlesyndication.com/pagead/abglogo/abg-tr-100c-000000.png"
    alt="Google Reklamları"></a></div>
</div>
<script>document.close();</script>
</body>
</html>

поэтому любые идеи/решения, пожалуйста.


person Basit    schedule 28.01.2011    source источник
comment
Если iframe отображает контент из другого домена, что, скорее всего, так и есть, то у вас вообще не будет доступа к нему с помощью JavaScript. Также я бы предположил, что манипулирование рекламой, скорее всего, противоречит условиям. Если вам не нравится реклама, которую они показывают, свяжитесь с ними и спросите, предлагают ли они рекламу для семейного просмотра, и если нет, перейдите в компанию, которая это делает.   -  person RoToRa    schedule 28.01.2011
comment
нет, это не манипулирование, у них есть функция черного списка. Все, что нам нужно сделать, это узнать, какая реклама показывается, а затем реклама, которая нам не нравится, поместить ее в черный список, и это будет работать отлично. кстати, опять же, мне не нужно манипулировать им, мне просто нужно читать, какие объявления показываются моим пользователям.   -  person Basit    schedule 28.01.2011


Ответы (2)


Какими бы благими ни были ваши намерения, политика единого источника заблокирует любой доступ к объявлению. Нет никакого способа обойти это, используя чистый JavaScript внутри страницы.

Однако вы можете что-то настроить, используя выделенный компьютер, браузер и решение для автоматизации, такое как Selenium, для записи отображаемые объявления. Я ожидаю, что это будет довольно сложно реализовать.

person Pekka    schedule 28.01.2011
comment
сайт уже делает это, но это не очень хорошо. adsblocklist.com. Кстати, я сделал это, мне больше ничего не нужно. но спасибо - person Basit; 28.01.2011
comment
Кстати, если Google говорит вам убить себя, вы не сделаете этого по уважительной причине, почему просто делайте то, что они всегда говорят. они даже не заботятся о конфиденциальности наших пользователей. если вы проверите новости Google или даже новое место в поисковой системе, вы обнаружите, что тысячи людей расстроены из-за неосторожных действий, какое нам дело? в любом случае, я не беспокоюсь о том, что они заблокируют сайт, потому что это будет не один сайт, а бесплатный сервис, который каждый сможет использовать и получить список заблокированных объявлений. но, честно говоря, я очень ценю вас, ребята, даже за ваши мысли. :) - person Basit; 28.01.2011

это просто

        console.log(jQuery('iframe').contents().find('#ads0').html());
person Basit    schedule 28.01.2011