Расскажу по порядку. Я собрал 350 источников, из них выходит около 60000 прокси всего и 250-350 живых после проверки.
Как мы знаем, проксичекер работает в два этапа: парсинг и проверка. Со вторым шагом проблем нет, все очень бодренько проходит. Но первый…. 60000 проксей он собирает ЧАС. Это долго, правда долго. Когда начинается сбор, я вижу:
- стартуют четыре инстанса движка webkit, чтобы дернуть страничку источника (выполняя js, видимо, и это круто)
- затем регуляркой из странички Зеброид пытается вытащить прокси
- возможно, перед этим очищается от html, это все выше были мои домыслы, но я думаю, дело обстоит где-то так.
Я подумал, что может быть Зеброиду трудно обрабатывать такой количество html-мешанины, и провел эксперимент: сторонней программой выкачал и очистил от тегов текст, заменил пробелы на переносы строки, чтобы облегчить задачу… ну это все равно ресурсоемкие операции, видимо. И положил файл на локалхост.
А теперь внимание. Даже при таких “тепличных” очень долго — тот же час — заполняет таблицу проксей. Я еще думал сначала, может он сортировку списка делает после каждого fetch page, но нет — тут же у нас в опыте 1 страница, значит и одна сортировка. Получается, что бутылочное горлышко – это сама таблица?
Оптимизируйте, пожалуйста, работу по заполнению таблицы. А если вы вообще сделаете дополнительный режим БЕЗ таблицы (она нужна, в целом нечасто, ну информативна, да) – это будет просто великолепно.
Ps Извините, за многобукв, просто наболевшее и очень важно для работы.