02.06.2014 21:25
 0просмотров 11 0

Анализ протоколов. Куча-мала.

Итак, рассмотрим решение, описанное в предыдущей теме, на примере. В качестве примера, возьмём мой протокол боёв и найдём, к примеру, максимальные уровни всех монстров, которых мне удалось одолеть.

Первый шаг - это написать скрипт, который будет выводить все страницы протокола боёв. Допустим, он будет срабатывать, когда я буду заходить на страницу протокола, с указанием номера страницы -1. Чтобы случайно его не запустить...
Выглядеть он будет следующим образом:

// ==UserScript==
// @name hvm_protokol
// @author FireSwarm
// @version 1.0
// @description hvm_protokol
// @unwrap
// @run-at document-end
// @include http://www.heroeswm.ru/*
// @match http://www.heroeswm.ru/*
// @grant       none
// ==/UserScript==

(function(){
    
    var count = 10;
    
    if (window.location.toString().indexOf("http://www.heroeswm.ru/pl_warlog.php?id=2477821&page=-1") > -1) {
        
        var messages = document.querySelectorAll("td");
        
        for (i = 1; i < count; i++) {
            var request=new XMLHttpRequest();
    
            request.open("GET", "http://www.heroeswm.ru/pl_warlog.php?id=2477821&page=" + i, false);
            request.overrideMimeType("text/plain;charset=windows-1251");
            request.send(null);

            var t = request.responseText.substring(request.responseText.indexOf('&nbsp;&nbsp;<a href="'));
            t = t.substring(0, t.indexOf("</td></tr>"))
            //alert(t);
            
            messages[messages.length - 1].innerHTML = messages[messages.length - 1].innerHTML + t;
        }
        
    }
    
})();


В этом скрипте нужно указать переменной count, сколько страниц загружать. В принципе, это можно и руками без проблем проверить. А можно не проверять вообще и указать с запасом - 200 к примеру. В этом случае последняя страница будет загружена несколько раз. Это не страшно. Во первых, потому что дубликаты мне фиолетовы, во вторых, вряд ли на последней странице будут победы над монстрами.

Возможность комментировать доступна после регистрации