Помогите разобраться с алгоритмом.

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
Есть сайт откуда нужно спарсить всех зарегистрированных пользователей, формат как у вк https://vk.com/id1 , т.е. там от 1 до 1 000 000. Нужно значит перебрать все эти значения и прочекать есть если под этим номером анкета. Я делаю через счетчик от 1, с итерацией +1 и до конца. По времени выходит очень долго. В много поток не знаю как сделать, кроме как разбить диапозон на несколько частей, например : от 10 000 до 20 000, от 20 000 до 30 000 и т.д.

Может кто сталкивался и подскажет как в зенке сделать, чтоб это можно было выполнить за 1-2 дня?
 

Leoneed

Client
Регистрация
03.05.2015
Сообщения
55
Благодарностей
38
Баллы
18
Чтобы было быстро - надо GET запросами.
Как делать GET запросами - на форуме написано.

Если стандартными средствами, то можно например так:

1. Делаешь список (например в Notepad++)
"Записать макрос" + нажать Enter + "остановка записи" макроса.
"Многократный запуск" макроса (сколько тебе надо раз, например 10 000) = получаешь 10 000 пустых строк
Alt+C - "числа для вставки" - исходное "1" увеличить на "1" = получаешь 10 000 строк пронумерованных от 1 до 10 000

2. сохраняешь этот список.

3. в проекте создаешь привязку к этому списку (привязать к файлу, сохранять изменения)
4. Берешь первую строку с удалением и записываешь в переменную "ID"
5. Переходишь экшеном на страницу вида https://vk.com/id{-variable.id-}
6. парсишь нужную инфу.
7. записываешь результат
8. всё!
Зацикливать проект не надо - 1 проход = 1 id + запись нужных результатов
---
В настройках ZP ставишь во сколько потоков запускать, и, останавливать например при 1 ошибке.
Количество выполнений - например бесконечное (как только закончатся строки в списке это будет ошибка при которой всё само остановится).
Когда запустишь много потоков - каждый будет брать из списка строку и удалять её.
 
  • Спасибо
Реакции: DenisK и konfuciy

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
Спасибо огромное за развернутый ответ, смотрю видео по GET запросам.

А где можно хорошие тему об этом почитать на форуме? Я совсем обнаглею)
 

Leoneed

Client
Регистрация
03.05.2015
Сообщения
55
Благодарностей
38
Баллы
18

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
В любом случае еще раз спасибо, буду изучать не работал еще с этими алгоритмами. Смотрю видео пока интересно.

Ну и поставил шаблон на стандартные методы =)
 

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
Все вроде настроил в 10 потоков, новая проблема мне кажется мой айпи сайт заблокировал, но это ладно залил прокси...

Так через прокси в 10 потоков очень много не открытий страниц :(
 

Leoneed

Client
Регистрация
03.05.2015
Сообщения
55
Благодарностей
38
Баллы
18
необходимо делать проверку (например на какой-то текст) при загрузке страницы.
т.е. если к примеру грузить mail.ru: после перехода на www.mail.ru делаем проверку наличия текста "Регистрация в почте", если текста нет - берём другой прокси

Еще как альтернатива прокси: http://zennolab.com/discussion/threads/advor-tor-zennoposter-manual.14758/
Если твой сайт не блокирует Exit-ноды TOR - то это оч. хорошее решение.
В настройках ADVor можно указать смену IP хоть каждые 10 сек.
 

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
Спасибо, да сделал такую проверку все отлично, по теме статьи не много не понял о чем она, перечитаю уже завтра второй раз.

Нубский вопрос Post и Get запросы работают только с теми сайтами где есть доступ к API? У меня форум, а не вк, вк как пример привел так как у них так же юзеров можно парсить так как идут от 1 к 100000.....
 

Leoneed

Client
Регистрация
03.05.2015
Сообщения
55
Благодарностей
38
Баллы
18
POST\GET и API - абсолютно разные "вещи"
 

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
Да, я понимаю. Просто видео то что посмотрел GET и Вк работа с апи.

Сам Get и Post запрос в зенне что делает? Берет код страницы и выводит в переменную по критериям, так же и Post только отправляет? Так? Я не понимаю физического смысла этих двух запросов. :(
Т.е. его главный смысл это убрать браузер из шаблонов, так?

--------------------------------------------

Еще два вопроса появились сейчас, вдруг знаешь:
1. Один проект можно запустить в зеннобоксе максимум в 10 потоков? Так. А как запустить его в 100+ потоков? Пробывал два одинаковых проекта добавлять не помогло. Подскажи, думаю знаешь.

2. При работе с прокси от зены ( прокси чекера ), как можно сделать так, чтоб прокси менялся в самом шаблоне, т.е. Беру при начале проекта 1 прокси, по нему страница не открывается, как сделать так чтоб он удалился и взялся новый?
Функцию при первом взятии удалять, после взятия видео, а чтоб так там можно было настроить нет.
 

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
Есть сайт откуда нужно спарсить всех зарегистрированных пользователей, формат как у вк https://vk.com/id1 , т.е. там от 1 до 1 000 000. Нужно значит перебрать все эти значения и прочекать есть если под этим номером анкета. Я делаю через счетчик от 1, с итерацией +1 и до конца. По времени выходит очень долго. В много поток не знаю как сделать, кроме как разбить диапозон на несколько частей, например : от 10 000 до 20 000, от 20 000 до 30 000 и т.д.

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

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
просто вместо обычной переменной запили глобальную, и будет у тебя переменная меняться во всех потоках...
С глобальными не разу не работал, даже не знаю как и что :(
 

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
да ничего трудного.
upload_2016-8-4_16-19-8.png

Просто добавь в начале проэкта проверку , что если глобальная ещё не инициализирована, то инициализировать её нулём. а иначе делать что-то другое. и добавь на каком-то этапе проэкта увеличение этой переменной на еденичку.
Суть глобальной в том, что она одна для всех инстансов данного проэкта. Тоесть если у тебя в одном инстансе будет она равна 999 , а после этого будет шаг +1, то в следующем инстансе она будет уже 1000.
Главное, что я для себя выкупил, так это то, что её желательно менять сразу после использования.
Ну к примеру. Ты вбиваешь в своём проэкте её в поле vk.com\id{-GlobalVariable.blabla.glabalka-} и сразу после этого нужно ей накинуть +1. после того, как ты её использовал. иначе, если ты сначала начнёшь там делать какие-то манипуляции со страничкой ( ну там информацию проверять и тд) и они у тебя займут много времени, то ты можешь не успеть поменять её к тому моменту, когда следуюший поток её подхватит. и выйдет, что тот поток тоже выхватит 999.
Я лично ставил её изменение непосредственно перед взятием. тоесть сначала шел кубик +1 к глобальной, а потом её использование. Так больше шанс на защиту от описаного выше
 

Вложения

  • Спасибо
Реакции: DenisK

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)