adblock如何阻止网络广告?我看到它注入一些隐藏广告的CSS,但我认为他做的不止于此 - 例如阻止http请求..
我希望在我的网站上检测广告拦截软件,并要求用户通过重定向来停用广告拦截功能.我发现的唯一方法是使用Javascript.
还有其他检测方法吗?
如果没有,我如何检测Javascript是否被禁用并将其重定向到某个页面?
我的目标是通过Python将Adblock Plus与Selenium一起使用.我已经能够将它加载到加载扩展的位置,但默认情况下它不包括默认过滤器"EasyList".这是我到目前为止:
from selenium import webdriver
from time import sleep
ffprofile = webdriver.FirefoxProfile()
adblockfile = '/Users/username/Downloads/adblock_plus-2.4-tb+fx+an+sm.xpi'
ffprofile.add_extension(adblockfile)
ffprofile.set_preference("extensions.adblockplus.currentVersion", "2.4")
browser = webdriver.Firefox(ffprofile)
while(True):
browser.get("www.cnn.com")
sleep(5)
Run Code Online (Sandbox Code Playgroud)
大部分代码都脱离了http://selenium-python.readthedocs.org/en/latest/faq.html
有没有办法可以用phantomjs安装chrome扩展名(.crx)?
我的任务是将adblockplus与phantomjs 集成,以便我可以使用phantomjs过滤所有广告和报告.
或者将adblockplus扩展与phantomjs 集成的任何其他方式?
我最近遇到了一个问题,即用户抱怨他们无法访问某个页面,因为链接不是应该的位置.
经过一番头疼之后,我让他们禁用所有浏览器扩展,确定问题消失了.逐个重新启用扩展程序......
的AdBlock.
出于某种原因,它阻止了用户想要访问的页面的链接.
现在,我没有投放广告而且从不计划,所以通常我只是告诉有这个问题的人将网站列入白名单,一切都很顺利.但如果有人从来不知道开始时会出现问题,那么我实际上会失去流量.那我怎么能避免这个呢?
我唯一能想到的就是检测AdBlock并弹出一个小通知,说明AdBlock已知会破坏网站,而且由于我们不运行广告,他们可能想要为网站禁用它.我的意思是,该网站是一个游戏,这不是第一次浏览器扩展破坏它,但我不认为第一次访问者会很高兴看到弹出窗口要求禁用他们的阻止程序,你知道?
因此,实际上阻止AdBlock首先破坏网站的任何解决方案都会很棒.
因此,大多数人必须在浏览器中使用AdBlock或AdBlock Plus插件才能阻止令人讨厌的广告和弹出窗口显示.
但是现在一些开发人员已经开发了一个脚本FuckAdBlock,可以帮助网站所有者检测我的浏览器上是否有AdBlock或AdBlock Plus.
我的问题是如何禁用此脚本.
我尝试的想法很少,却没有得到任何结论.
从chome dev工具 - > Source,我复制了脚本的链接地址,并添加到AdBlock Plus中的阻止地址.仍然正在加载文件.不知道为什么.
这个脚本正在添加
if(window.fuckAdBlock === undefined) { window.fuckAdBlock = new FuckAdBlock({ checkOnLoad: true, resetOnEnd: true }); }
所以我想添加一个Object.observe
on window.fuckAdBlock
,这样每当它改变时我都可以改回来null
.但不幸的是,我不知道如何正确使用它.
是否可以通过adblock将css规则添加到某个页面的元素中?像这样的东西
#myElement {
color: white !important;
}
Run Code Online (Sandbox Code Playgroud)
我试图在页面加载时找到一个更新此元素样式的脚本,但似乎这不是最好的方法.
如何在uBlock Origin中使用通配符?我试图弄清楚该怎么做,但我有些困惑。我只想将所有这些规则简化为一个规则:
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(2)
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(3)
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(4)
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(5)
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(6)
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(7)
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(9)
www.dailymail.co.uk###js-article-text > div:nth-of-type(2) > div:nth-of-type(10)
Run Code Online (Sandbox Code Playgroud)
是否可以给出一定范围的数字或特定数字的列表,或者仅给出一个星号?谢谢!
在一些安装了adblock的网页中,在正文中添加了“overflow:hidden”css样式,防止网站滚动。
\n\n例子:
\n\n<html>\n <head>\n <title>Website</title>\n </head>\n <body style="overflow: hidden;">\n Some long article content\n </body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n我每次都必须在 Chrome Web Inspector 中手动编辑才能删除,这很烦人。
\n\n我想知道我可以永久删除此删除,或者通过 chrome 扩展或 adblock 规则检测以删除它,或者可能通过直接 javascript 等。
\n\n更新:使用 tampermonkey chrome 扩展,也许我可以达到我的目标。我执行了以下脚本,但没有结果(页面似乎重新加载或加载了一些 javascript,并且我无法正确删除隐藏的正文溢出):
\n\n// ==UserScript==\n// @name InvestingRemoveScrollBodyBlocker\n// @namespace http://tampermonkey.net/\n// @version 0.1\n// @description Remove body overflow hidden\n// @author \xc3\x81ngel Guzm\xc3\xa1n Maeso <angel@guzmanmaeso.com>\n// @match https://*.investing.com/*\n// @grant none\n// ==/UserScript==\n\n(function() {\n \'use strict\';\n\n setTimeout(function(){\n\n var bodyWeb = document.getElementsByTagName("BODY")[0];\n console.log(bodyWeb);\n bodyWeb.style.overflow = "visible !important";\n\n }, 4000);\n\n})();\n
Run Code Online (Sandbox Code Playgroud)\n javascript css adblock google-chrome-extension google-chrome-devtools
我网站上的一些 XHR 请求被 uBlock 原始广告拦截器阻止,它抛出这样的错误
GET https://maps.googleapis.com/maps/api/mapsjs/gen_204?csp_test=true net::ERR_BLOCKED_BY_CLIENT
POST https://o812912.ingest.sentry.io/api/ net::ERR_BLOCKED_BY_CLIENT
有谁知道如何解决这一问题?有一些与此相关的未决问题,但没有找到任何完美的解决方案。