Eu tentei o seguinte, não surtiu efeito:
startpage.com##[style*="background-color:#F5F9FF;"]
Alguma idéia de como resolver isso?
Para reproduzir: Vá parahttps://startpage.com/do/search- pesquise, por exemplo, por adblock
. Você verá caixas azuis claras desagradáveis na parte superior e inferior da página onde se lê "Anúncios relacionados ao adblock":
Isso ocorre com Iceweasel (Firefox 38.2.1) e Adblock Edge 2.1.9.1.
Se não for possível, quais sites seguros/que respeitam a privacidade e sem anúncios você recomenda como alternativa ao IxQuick e ao Startpage?
Responder1
Alguma idéia de como resolver isso?
Os anúncios em questão estão em uma div com ID “spon_links”.
<div id="spon_links">
Você pode usar umMacaco Greasescript para remover essas divs.
Solução 1
Isso é confirmado como funcionando no Firefox ao usar o bloqueador de anúncios uBlock Origin.
// ==UserScript==
// @name startpage.com remove ads
// @namespace startpage.com
// @description Removes ads from startpage.com before they are displayed.
// @include https://startpage.com/*
// @include https://*.startpage.com/*
// @run-at document-start
// @version 2015-09-29
// @grant GM_addStyle
// ==/UserScript==
GM_addStyle("div#spon_links { display: none !important}");
Solução 2
Não testado.
Substitua 'ads'
por 'spon_links'
no script de exemplo abaixo.
4.9. Removendo um elemento
Você pode usar Greasemonkey para remover pedaços inteiros de uma página de uma só vez, com a função removeChild.
Exemplo: remover uma barra lateral de anúncio
Isto pressupõe que existe um elemento cujo ID é "anúncios".
var adSidebar = document.getElementById('ads'); if (adSidebar) { adSidebar.parentNode.removeChild(adSidebar); }
Remover um elemento
removeChild
também removerá todo o conteúdo dentro dele. Por exemplo, se você remover um<table>
elemento, isso também removerá todas as células da tabela (<td>
elementos).
Responder2
Atualmente adicionando:
startpage.com##.clicktrackedAd_js
à minha lista de filtros uBlock Orgin fez o trabalho. Nenhum resultado de pesquisa de anúncios aparece mais.
Responder3
Seguindo o aviso de @DavidPostill, olhei novamente para a estrutura da página. Parece que os anúncios de texto são movidos para fora div.spon_links
quando o Adblock Edge está ativado, o que de fato possui uma regra de filtragem para spon_links
. Se isso é um mau comportamento do Adblock Edge ou alguma contra-ação do Startpage, não sei.
Existe uma solução mais simples do que adicionar um script Greasemonkey personalizado – simplesmente trocar o Adblock Edge pelo uBlock também resolveu o problema.
Após uma investigação mais aprofundada, os anúncios só desaparecem com o uBlock ativado quando o Adblock Edge é totalmente desativado ao mesmo tempo ("Desativar em todos os lugares"). Mesmo que eu desative apenas para o Startpage ("Desativar em startpage.com"), o site moverá os anúncios para fora do spon_links
contêiner. Minha explicação é queDe alguma forma, o Startpage consegue acessar minhas preferências de complementos e verifica se o Adblock está geralmente ativado. Poderia ser tão desagradável?!
Usando a abordagem de Greasemonkey e David removeChild
, criei a seguinte solução que ainda funciona quando o Adblock Edge está instalado. Parece que é preciso esperar até que a página carregue e brincar para evitar o bloqueio de anúncios, até que você possa finalmente localizar e excluir os elementos ofensivos:
// ==UserScript==
// @name startpage/ixquick remove ads
// @namespace startpage.com
// @description Removes ads from startpage/ixquick before they are displayed.
// @include https://startpage.com/*
// @include https://*.startpage.com/*
// @include https://ixquick.com/*
// @include https://*.ixquick.com/*
// @run-at document-end
// @grant none
// @version 2015-09-29
// ==/UserScript==
var fun = function() {
var results = document.getElementById('bottom-result-container');
if (results) {
var ols = results.getElementsByTagName('ol');
for (i = 0; i < ols.length; i++) {
var ol = ols[i];
var ps = ol.getElementsByTagName('p');
for (j = 0; j < ps.length; j++) {
var p = ps[j];
if (p.className == 'head2') {
var spans = p.getElementsByTagName('span');
for (k = 0; k < spans.length; k++) {
if (spans[k].innerHTML.contains("Ads related to")) {
ol.innerHTML = '';
}
}
}
}
}
}
};
setTimeout(fun, 1);
(Desculpe, meu JavaScript está um pouco enferrujado, provavelmente mais fácil com jQuery.)
Responder4
No AdblockPro consegui bloquear a div adicionando esta regra:
startpage.com###sponsored_csa1
Usei o ABP Element Hiding Helper para selecionar o div pai para mim e aceitei sua regra padrão.
AdBlock Edge é um fork do ABP, então espero que uma regra funcione no ABE também. No entanto, a ABE tem sidointerrompidopor seu desenvolvedor, então você realmente deveria voltar para o ABP (e apenas desligar o recurso de anúncios aceitáveis) ou mudar para o uBlock.
O uBlock também pode ser a melhor escolha do ponto de vista técnico; é suposto ter uma carga de memória/CPU mais leve no FF do que no ABP. Também funciona totalmente com o próximoeletróliseatualização para Firefox que divide a interface de usuário e as guias de nível superior em processos separados e executa o último em configurações mais restritas, o que deve dificultar a exploração por autores de malware (o IE e o Chrome fazem isso há anos). Seu eta é potencialmente já no final do ano. (FF43/14 de dezembro tem sido a data prevista há algum tempo; se eles conseguirem, depende de quão bem a telemetria nas compilações alfa/beta parece e quão pequeno é o número de bugs abertos.)