- Регистрация
- 12.10.2012
- Сообщения
- 420
- Благодарностей
- 726
- Баллы
- 93
Приветствую всех!
В этот раз решил обойтись длинным монологом, СРАЗУ ПЕРЕЙДЕМ К ДЕЛУ
Когда я был дорвейщиком , то планировал смастерить этот шаблон на зенки... да все руки не доходили.
Парсить мы будет по слову "Скачать" . Сразу со страницы твиттера мне перехотелось
https://twitter.com/search?q=скачать&src=typd
Api твиттера на поиск тоже не поддавалось (а я то думал, что у дропбокса самое идиотское... наивный ), но гугл как всегда спешит на помощь ||| После нудного получасового перебора всех сайтов.. я был вымотан, НО ДОВОЛЕН !!!
Теперь все кандидаты в сборе.. (a-parser, зенка, источник инфы) - Пора приступать
Наша задача:
Далее настраиваем A-parser и его взаимодействия с ЗенноПостером :
1) Создадим пресет "test" и поставим в него формат запроса "!$query"
2) Зарегаем яндекс аккаунтов, чтобы парсить директ
3) Установим прокси
4) Создадим post запрос на API
"parser" : "SE::Yandex;Direct:Frequency", - (парсер частотки) - http://a-parser.com/wiki/se-yandex-direct-frequency/
"password" : "", - пароль от учетки а-парсера
"preset" : "test", - прессет, где я указал антикапчу и юзать прокси / не юзать + формат запроса и и полученного результат.
"threads" : 4, - кол-во потоков.
"queries" : - наши запросы
Как видим в примере, нам вместо этих слов нужно подставить спарсенные слова с твиттера.
Для этого делаем сл.шаги:
В ответе мы получаем:
После обработки:
ИТОГО:
1) Запускаем а-парсер на серваке
2) Закцикливаем парсер на 10 попыток (раз в 6 сек)
3) Ставим шаблон на планировщик "1 запуск - раз в минуту"
На выходе получаем более +- 50к кеев в сутки по слову "скачать" с прочеканной частоткой".
Многие меня спросят.. ДЫК ЭТО МОЖНО И НА ЗЕНКИ СДЕЛАТЬ!!!?
А ответ на вопрос (почему мы вообще подключили А-парсер?) ждите в 3 части моей статьи по а-парсеру
[это был только разогрев]....
Скачать шаблон: https://yadi.sk/d/JL6_DLJQgvj8p
1) Идем сюда - http://json2csharp.com/
2) Вставляем наш JSON - http://pastebin.com/xvAZynYL
3) Получаем структурированный класс на разбор JSON
4) Выкидываем ненужные параметры и обворачиваем все в namespace JSOND (для подключение нашего класса из общего кода в using)
5) Подключаем библиотеку Newtonsoft.Json.dll (скачать)
7) Прописываем код из пункта "4", в новую фичу зеннопостера - "ОБЩИЙ КОД" . Она позволяет нам переносить все классы кода , заменяя прежние костыли (генераций dll с нашими классами в Devel Studio).
+ Добавляем в USING
using Newtonsoft.Json;
using JSOND;
Добавляем этот код в c# сниппет
Как итог, все данные записались в таблицу. Кто хорошо знаком с c# .. может сразу Replace-ом заменить 1/0 - (оффлайн , онлайн). И дальнейшие манипуляции.
Кто еще не работает с новым зеннопостером, то ему подойдет этот вариант разбора JSON.
В этот раз решил обойтись длинным монологом, СРАЗУ ПЕРЕЙДЕМ К ДЕЛУ
Парсить мы будет по слову "Скачать" . Сразу со страницы твиттера мне перехотелось
https://twitter.com/search?q=скачать&src=typd
Api твиттера на поиск тоже не поддавалось (а я то думал, что у дропбокса самое идиотское... наивный ), но гугл как всегда спешит на помощь ||| После нудного получасового перебора всех сайтов.. я был вымотан, НО ДОВОЛЕН !!!
HTML:
https://www.twilert.com/twilerts/preview?query=%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C
Наша задача:
- Спарсить из этой кучи-малы только текст твиттов
- Отобрать твитты, которые имеют: (не менее 20 символов && но не больше 55 символов).
- Почистить их от мусора
Код:
var contentfinal = project.Lists["contentfinal"]; // обозначим список "contentfinal "
var list = project.Lists["list"]; // обозначим список "list"
string regex = project.Variables["regex2"].Value; // регулярка
string text = project.Variables["nomer2"].Value; // текст
var reg = new System.Text.RegularExpressions.Regex(regex, System.Text.RegularExpressions.RegexOptions.None);
foreach (var match in reg.Matches(text))
{
list.Add(match.ToString()); // добавляем в цикле все значения в список
}
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < list.Count; i++) // цикл на Replace, кол-во символов
{
// читаем строку из списка
var str = list[i];
var output = System.Text.RegularExpressions.Regex.Replace(str,@"http://.+", ""); // первая замена
var next = System.Text.RegularExpressions.Regex.Replace(output,@"[^\w\d\s]", ""); // вторая замена
// проверяем на кол-во символов
if (next.Length > 20 && next.Length < 55)
contentfinal.Add(next); //добавляем результаты в "contentfinal" (список)
}
}
1) Создадим пресет "test" и поставим в него формат запроса "!$query"
3) Установим прокси
4) Создадим post запрос на API
"parser" : "SE::Yandex;Direct:Frequency", - (парсер частотки) - http://a-parser.com/wiki/se-yandex-direct-frequency/
"password" : "", - пароль от учетки а-парсера
"preset" : "test", - прессет, где я указал антикапчу и юзать прокси / не юзать + формат запроса и и полученного результат.
"threads" : 4, - кол-во потоков.
"queries" : - наши запросы
Как видим в примере, нам вместо этих слов нужно подставить спарсенные слова с твиттера.
Для этого делаем сл.шаги:
В ответе мы получаем:
HTML:
{"success":1,"data":{"resultString":"\"!Скачать nfs carbon na windovs xp 3\": 0\n\"!Скачать сервер 152 с нужными плагинами для майнкрафт\": 0\n\"!Скачать все серии губка боб через торрент рус\": 0\n\"!Trolhappy скачать для в вконтакте смайлы\": 0\n","logs":{"1":{"1":[[0,1432825525,"Parser SE::Yandex::Direct::Frequency::0 parse query \"!Скачать nfs carbon na windovs xp 3\""],[0,1432825525,"Wait for proxy"],[0,1432825525,"Use proxy socks://91.214.71.16:7103"],[0,1432825525,"GET(1): https://direct.yandex.com/public?cmd=ajaxGetSuggestion&csrf_token=&geo=225&get_stat=1&promo=spros&srcPhrases=%22!%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20nfs%20carbon%20na%20windovs%20xp%203%22 - 200 OK (0.11 KB)"],[0,1432825525,"Parse response: 1"],[3,1432825525,1],[0,1432825527,"Thread complete work"]]},"0":{"1":[[0,1432825525,"Parser SE::Yandex::Direct::Frequency::0 parse query \"!Скачать сервер 152 с нужными плагинами для майнкрафт\""],[0,1432825525,"Wait for proxy"],[0,1432825525,"Use proxy http://185.31.160.178:7073"],[0,1432825526,"GET(1): https://direct.yandex.com/public?cmd=ajaxGetSuggestion&csrf_token=&geo=225&get_stat=1&promo=spros&srcPhrases=%22!%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%20152%20%D1%81%20%D0%BD%D1%83%D0%B6%D0%BD%D1%8B%D0%BC%D0%B8%20%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D0%BC%D0%B0%D0%B9%D0%BD%D0%BA%D1%80%D0%B0%D1%84%D1%82%22 - 200 OK (0.16 KB)"],[0,1432825526,"Parse response: 1"],[3,1432825526,1],[0,1432825527,"Thread complete work"]]},"3":{"1":[[0,1432825525,"Parser SE::Yandex::Direct::Frequency::0 parse query \"!Скачать все серии губка боб через торрент рус\""],[0,1432825525,"Wait for proxy"],[0,1432825525,"Use proxy http://62.76.75.165:7142"],[0,1432825527,"GET(1): https://direct.yandex.com/public?cmd=ajaxGetSuggestion&csrf_token=&geo=225&get_stat=1&promo=spros&srcPhrases=%22!%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20%D0%B2%D1%81%D0%B5%20%D1%81%D0%B5%D1%80%D0%B8%D0%B8%20%D0%B3%D1%83%D0%B1%D0%BA%D0%B0%20%D0%B1%D0%BE%D0%B1%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20%D1%82%D0%BE%D1%80%D1%80%D0%B5%D0%BD%D1%82%20%D1%80%D1%83%D1%81%22 - 200 OK (0.15 KB)"],[0,1432825527,"Parse response: 1"],[3,1432825527,1],[0,1432825527,"Thread complete work"]]},"2":{"1":[[0,1432825525,"Parser SE::Yandex::Direct::Frequency::0 parse query \"!Trolhappy скачать для в вконтакте смайлы\""],[0,1432825525,"Wait for proxy"],[0,1432825525,"Use proxy http://94.142.142.52:7272"],[0,1432825527,"GET(1): https://direct.yandex.com/public?cmd=ajaxGetSuggestion&csrf_token=&geo=225&get_stat=1&promo=spros&srcPhrases=%22!Trolhappy%20%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20%D0%B4%D0%BB%D1%8F%20%D0%B2%20%D0%B2%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5%20%D1%81%D0%BC%D0%B0%D0%B9%D0%BB%D1%8B%22 - 200 OK (0.14 KB)"],[0,1432825527,"Parse response: 1"],[3,1432825527,1],[0,1432825527,"Thread complete work"]]}}}}
После обработки:
HTML:
"!Скачать nfs carbon na windovs xp 3": 0
"!Скачать сервер 152 с нужными плагинами для майнкрафт": 0
"!Скачать все серии губка боб через торрент рус": 0
"!Trolhappy скачать для в вконтакте смайлы": 0
ИТОГО:
2) Закцикливаем парсер на 10 попыток (раз в 6 сек)
3) Ставим шаблон на планировщик "1 запуск - раз в минуту"
На выходе получаем более +- 50к кеев в сутки по слову "скачать" с прочеканной частоткой".
Многие меня спросят.. ДЫК ЭТО МОЖНО И НА ЗЕНКИ СДЕЛАТЬ!!!?
А ответ на вопрос (почему мы вообще подключили А-парсер?) ждите в 3 части моей статьи по а-парсеру
[это был только разогрев]....
Скачать шаблон: https://yadi.sk/d/JL6_DLJQgvj8p
1) Идем сюда - http://json2csharp.com/
2) Вставляем наш JSON - http://pastebin.com/xvAZynYL
3) Получаем структурированный класс на разбор JSON
HTML:
public class LastSeen
{
public int time { get; set; }
public int platform { get; set; }
}
public class Response
{
public int uid { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
public int online { get; set; }
public string home_phone { get; set; }
public string facebook { get; set; }
public string facebook_name { get; set; }
public string instagram { get; set; }
public LastSeen last_seen { get; set; }
public string online_app { get; set; }
public int? online_mobile { get; set; }
public string twitter { get; set; }
public string skype { get; set; }
public int? hidden { get; set; }
public string livejournal { get; set; }
}
public class RootObject
{
public List<Response> response { get; set; }
}
Код:
namespace JSOND
{
public class Response
{
public int uid { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
public int online { get; set; }
}
public class RootObject
{
public List<Response> response { get; set; }
}
}
7) Прописываем код из пункта "4", в новую фичу зеннопостера - "ОБЩИЙ КОД" . Она позволяет нам переносить все классы кода , заменяя прежние костыли (генераций dll с нашими классами в Devel Studio).
+ Добавляем в USING
using Newtonsoft.Json;
using JSOND;
Добавляем этот код в c# сниппет
Код:
string json = project.Variables["json"].Value; // тут наш json
var table = project.Tables["table"]; // Имя таблицы
RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
//перебираем все елементы обьекта
for (int i = 0; i < obj.response.Count; i++)
{
//формируем строку
string str = String.Format("{0};{1};{2};{3}", obj.response[i].uid, obj.response[i].first_name, obj.response[i].last_name, obj.response[i].online);
//{0};{1};{2};{3} и obj.response[i].uid, obj.response[i].first_name, obj.response[i].last_name, obj.response[i].online можно менять (это наш рабочий черновик)
table.AddRow(str);
//пишем в таблицу строку
}
return 1;
Кто еще не работает с новым зеннопостером, то ему подойдет этот вариант разбора JSON.
- Тема статьи
- Парсинг
- Номер конкурса статей
- Третий конкурс статей
Вложения
-
479,8 КБ Просмотры: 1 075
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: