dmitcat

dmitcat
Рейтинг
123
Регистрация
26.05.2005
MOHETA:


А проблема, что нумеруются такие страницы как realty.yandex.ru news.yandex.ru market.yandex.ru так и осталась.

а покажи скиншот с адресной строкой где так нумеруется. по идее такие страницы под маску не должны попадать

кстати, для хрома тоже работает - надо установить Tampermonkey

это аналог greasemonkey. проверил у себя - работает отлично и в хроме без изменений

---------- Добавлено 11.06.2014 в 11:59 ----------

немного изменено - чтобы работало только на поиске:

из настроек - var perpage=50; - поставьте то кол-во результатов, которое у вас в настройках - чтобы правильно нумеровались позиции со второй и последующих страниц

у меня стоит 50, у кого то может 10 или 30. соответственно надо

var perpage=10;

var perpage=30;

...

// ==UserScript==

// @name numeration

// @namespace test

// @include http://yandex.ru/yandsearch*

// @version 1

// @grant none

// ==/UserScript==

function UpdateSerp(){

var perpage=50;

var s=document.location.href;

s=s.split("&p=");

var page=parseInt(s[1]);

if(!page){page=0;}

var divs = document.getElementsByTagName('div');

var count=0, is=0, istop=0;

for(i=0;i<divs.length;i++){

var s=divs.className;

if(s.indexOf('serp-block')!=-1){
var m=divs.innerHTML;
if( (m.indexOf('direct.yandex')!=-1) && (!is) && (!istop) ){
var p = m.split('<h2');
count = p.length-1;
is=1;
}
else{istop=1;}
}
}


var divs = document.getElementsByTagName('h2');
var k=1, is=0;

for(i=0;i<divs.length;i++){
var s=divs.className;

if(s.indexOf('serp-item__title')!=-1){

var m=divs.innerHTML;
if(m.indexOf('isdone')==-1){
var pg=k-count+(perpage*page);
m=pg+". <span class=isdone></span>"+m;
if(k>count){divs.innerHTML=m;}
}
k++;

}
}

setTimeout(UpdateSerp, 1000);

}

UpdateSerp();

MOHETA:
Спасибо за скриптик!
Но можешь сделать, чтобы не нумеровались такие страницы как realty.yandex.ru news.yandex.ru market.yandex.ru Из-за них выдача немного кривая.

http://yadi.sk/d/MEWwJV2ZSvCMV

надо в настройках задать область действия скрипта

http://softlakecity.ru/browsers/firefox/greasemonkey

http://qalib.ru/a/kak-polzovatsya-greasemonkey

ну или погуглить на эту тему

---------- Добавлено 10.06.2014 в 14:22 ----------

Alksprin:
Настроил, благодарствую, работает, верхний директ пропускает, но нижний все-таки нумерует)))

ну неохота было отсекать еще и нижний блок :)

тем более по большому счету он не важен, т.к. след. страница нумеруется нормально

chaser:
А как быть с такой выдачей например?

http://yandex.ru/yandsearch?text=%D0%B2%D0%B5%D1%80%D1%82%D0%BE%D0%BB%D1%91%D1%82%D1%8B+%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B8&lr=213&rnd=89635 - реклама / выдача / картинки / выдача / реклама

Причем также в верстке попадаются варианты:
- РЕКЛАМА: serp-block serp-block-p3
- ВЫДАЧА: serp-block serp-block-go

пока скриптик справляется - http://yadi.sk/d/iuK9LYvJStGUL

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

Nam3D:
dmitcat, пиши в ТП яндекса чтобы запилили как отдельный виджет в настройках :D

а то им сложно галочку такую ввести в настройках? :)

тогда же директ будет виден явным образом...

кому интересно вернуть циферки - сделал скриптик для firefox + greasemonkey

в 99% случаев работает отлично

// ==UserScript==

// @name numeration

// @namespace test

// @include http://yandex.ru/*

// @version 1

// @grant none

// ==/UserScript==

function UpdateSerp(){

var perpage=50;

var s=document.location.href;

s=s.split("&p=");

var page=parseInt(s[1]);

if(!page){page=0;}

var divs = document.getElementsByTagName('div');

var count=0, is=0, istop=0;

for(i=0;i<divs.length;i++){

var s=divs.className;

if(s.indexOf('serp-block')!=-1){
var m=divs.innerHTML;
if( (m.indexOf('direct.yandex')!=-1) && (!is) && (!istop) ){
var p = m.split('<h2');
count = p.length-1;
is=1;
}
else{istop=1;}
}
}


var divs = document.getElementsByTagName('h2');
var k=1, is=0;

for(i=0;i<divs.length;i++){
var s=divs.className;

if(s.indexOf('serp-item__title')!=-1){

var m=divs.innerHTML;
if(m.indexOf('isdone')==-1){
var pg=k-count+(perpage*page);
m=pg+". <span class=isdone></span>"+m;
if(k>count){divs.innerHTML=m;}
}
k++;

}
}

setTimeout(UpdateSerp, 1000);

}

UpdateSerp();



результат - http://yadi.sk/d/NYw6DkyJSqyge

Копировать файл в темп диреторию и отдавать его... и чистить ее периодически удаляя файлы с временем жизни больше 5-10-15...-NN минут

Заказывал 2 макета. Быстро и качественно за данную цену!

Буду заказывать еще!

Всего: 168