2017-01-04 195 views
1

広告を検出して削除するプログラムを作成しようとしています。これまでのコードです:selenium pythonで広告を非表示/削除する

from selenium import webdriver 

url = input('Enter URL to detect ads from: ') 

browser = webdriver.Chrome() 
browser.get('http://'+url) 

all_iframes = browser.find_elements_by_tag_name("iframe") 
print(' ') 


for iframe in all_iframes: 
    browser.switch_to.frame(iframe) 
    print("Ad Found") 
    browser.switch_to.default_content() 

print(' ') 
print('Total Ads: ' + str(len(all_iframes))) 

私の質問は、私のプログラムが検出したこれらの広告を削除する方法ですか?あなたは、単に以下のようにそれらを非表示にする各iframehidden属性を設定することができます

答えて

1

from selenium import webdriver 

url = input('Enter URL to detect ads from: ') 

browser = webdriver.Chrome() 
browser.get('http://'+url) 

all_iframes = browser.find_elements_by_tag_name("iframe") 
if len(all_iframes) > 0: 
    print("Ad Found\n") 
    browser.execute_script(""" 
     var elems = document.getElementsByTagName("iframe"); 
     for(var i = 0, max = elems.length; i < max; i++) 
      { 
       elems[i].hidden=true; 
      } 
          """) 
    print('Total Ads: ' + str(len(all_iframes))) 
else: 
    print('No frames found') 

P.S.をページ上のiframeのすべてが広告であるとは限りません。

+0

ご返信ありがとうございます。あなたが答えたコードをどこに置くべきか教えていただけますか? – Vagif

+0

更新されたコードを確認 – Andersson

+0

このリンクの広告サーバーを使用しているページのすべての広告を見つける方法はありますか?[link](http://pgl.yoyo.org/adservers/iplist.php?ipformat=&showintro=1&mimetype=plaintext )、またはページ上のすべての広告を見つける方法はありますか? – Vagif

関連する問題