2017-01-04 72 views
1

我想制作一个检测广告然后删除它们的程序。这是到目前为止我的代码:用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))) 

我的问题是有没有办法删除/隐藏这些广告我的程序检测?

回答

1

您可以简单地设置hidden属性,每个iframe,使它们如下无形:

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') 

附:请注意,并非网页上的每个iframe都是广告!

+0

感谢您的回复。你能告诉我在哪里我应该把你的回答的代码? – Vagif

+0

查看已更新的代码 – Andersson

+0

有没有办法在此链接上使用广告服务器查找网页上的所有广告:[link](http://pgl.yoyo.org/adservers/iplist.php?ipformat=&showintro=1&mimetype=plaintext )还是有任何方法找到页面上的所有广告? – Vagif