Собираем тексты для доров на автомате

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 109
Благодарностей
195
Баллы
63
Вступление

Всем доброго дня! Я раньше не принимал участие в конкурсах статей, но с большим интересом наблюдал как люди делятся своими знаниями. Я решил принять участие в конкурсе, т.к. мне интересно ваше мнение относительно моего труда, также я хочу понять насколько он был бы полезен на практике.

Итак, поехали!

Я решил заняться строительством доров и для этого нужно собирать большие объемы текста, чтобы заполнять ими блоги.

Создание шаблона можно разделить на несколько этапов:
  • Выбор поисковой системы для работы
  • Определение задач, которые должен выполнять шаблон
  • Куда записывать результаты
Сначала решил делать парсер контента и под яндекс, и под google, но откровенно замучался подбирать программу, которая нормально бы гадала новую капчу у яндексе. Те, которыми пользовался, гадали с вероятностью 80%, не больше. В результате оставил яндекс в покое и сделал только под google, т.к. шаблон получается универсальным - можно собирать, как русские тексты, так и английские, что для меня предпочтительнее, т.к. с западом тоже работаю.

В общем, мне было понятно, как делать шаблон, но были свои сложности:
  • Некоторое время я промучался с поиском переменных для запроса по перебору страниц
Мне нужно было сформировать строку вида: https://www.google.com/search?q={-Variable.Keyword-}&ei={-Variable.KEI-}&start={-Variable.page-}&sa=N&ved={-Variable.go_ved-}&biw={-Variable.go_biw-}&bih={-Variable.go_bih-}&dpr={-Variable.go_dpr-}, чтобы шаблон перебирал страницы и с каждой новой страницы брал свой контент.

В итоге оказался просто рутинный поиск переменных, поочередное вытаскивание их из запросов и подстановка в нужное место.
  • Основную сложность для меня представляли стандартные кубики взятия нужного текста regex,ом, тут я решил просто заменой на c# код
Вопрос заключался в том, что при попытке взять текст регулярным выражением, зенка пыталась интерпретировать конструкции, вида { и {- как макросы или переменные. Такие попытки занимали на каждом кубике по 2-3 секунды и прилично тормозили шаблон. После 100и проходов у меня шаблон вообще вставал наглухо и больше не работал.

bag1.png

bag2.png

Вопрос я решил следующим образом:

Код:
var content = project.Variables["GET_SITE"].Value;
var pattern = @"(?<=data-ved="").*?(?=""></div>)";
var go_ved = Regex.Match(content, pattern).Value;
project.Variables["go_ved"].Value = go_ved;
Причем стандартная конвертация в c# код давала туже ошибку, что и обычный кубик. Ошибка была актуальна для версии 5.29.0.0. Возможно, сейчас исправили уже. Итогом исправления стало ускорение работы шаблона. Теперь шаблон может делать сколько угодно проходов и сильно не грузить комп.

Отбор текстов

Т.к. генераторов русских, осмысленных текстов еще не придумали и вряд ли придумают в обозримом будущем, я решил брать сниппеты из поисковой выдачи по нужным ключевым словам. Затем записывать их соответствующие файлы.
По идее можно прикрутить еще удаление минус слов, отбор по нужным критериям, разбиение слов по категориям, рандомизацию сниппетов и т.п. Лично мне это не было нужно. Я просто собираю много ключевых слов, соответственно получается много описаний. Т.е. итоговый файл с текстом у меня достигает 5-6 мегабайт. Поэтому повтор, практически исключен.

Итог

Что умеет шаблон:
  • Выбор нужной темы по id
  • Перебор ключевых слов по темам
  • Запись собранных сниппетов в нужные файлы
  • Все сниппеты пишутся построчно, чтобы было их удобнее брать и заполнять доры контентом.
Всем спасибо за внимание:-)
 
Тема статьи
Парсинг
Номер конкурса статей
Одиннадцатый конкурс статей

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

marjachok

Client
Регистрация
26.06.2015
Сообщения
76
Благодарностей
99
Баллы
18
А ты не сталкивался с такой проблемой, как реклама среди текста, и как ты её удаляешь?
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 109
Благодарностей
195
Баллы
63
А ты не сталкивался с такой проблемой, как реклама среди текста, и как ты её удаляешь?
Приветствую) Я сталкивался немного с другим вопросом (в поисковике яндекс) - мне нужно было нажимать только на те сайты, которые дают рекламу, а на другие не нажимать. Это было до того, как я стал делать шаблон на c#. Если на c#, тут просто делаем эмуляцию и нажимаем на те сайты, которые нужны.
Если без c#, только на post - get запросах, то нужно вытаскивать из яндекса ссылки, которыми он обозначает переходы по рекламе и по ним нажимать. Если хотите пример такой ссылки скину.
Я правильно вас понял?

Если именно в тексте сниппетов реклама присутствует, то думаю, что можно регексом исключать нужные конструкции. Вы можете скрин с примером скинуть? Подумаем, как решить вопрос)
 

boragud

Пользователь
Регистрация
28.10.2010
Сообщения
74
Благодарностей
16
Баллы
8
Подскажите пожалуйста,где выбирается поисковая система и куда вписываются ключи(в какой файл)?
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 109
Благодарностей
195
Баллы
63
Подскажите пожалуйста,где выбирается поисковая система и куда вписываются ключи(в какой файл)?
Точно, нужно дать раскладку по файлам:-))
Все нужные файлы закиньте туда где у вас лежит сам файл шаблона, затем поменяйте все пути на
{-Project.Directory-}themes.xls (вместо themes подставьте нужное имя файла или укажите с помощью кнопки "обзор".

Вам понадобятся:
- файл themes.xls в таком формате:
themes.jpg

- proxy.txt
- User-Agent.txt
- Изначально нужно создать 2а файла для ключевых слов 1111_main.txt и 1111_all.txt Галка "создавать файл при его отсутствии" у меня стоит
Взятие файла с ключами у вас должно так происходить:
Key1.jpg


- Далее создаем 1 файл Content_rus_1111.txt
Взятие этого файла должно так происходить:
content.jpg

Все) Будут вопросы, пишите
 

Veterinar

Client
Регистрация
01.07.2016
Сообщения
194
Благодарностей
22
Баллы
18
Мне нужно было сформировать строку вида: https://www.google.com/search?q={-Variable.Keyword-}&ei={-Variable.KEI-}&start={-Variable.page-}&sa=N&ved={-Variable.go_ved-}&biw={-Variable.go_biw-}&bih={-Variable.go_bih-}&dpr={-Variable.go_dpr-}, чтобы шаблон перебирал страницы и с каждой новой страницы брал свой контент.
Спасибо за статью, подал мне много идей по парсингу, хоть я дорами и не занимаюсь.

По поводу составления адреса, из C# кубика ты можешь использовать банальные функции из .NET Зенка их поддерживает.
C#:
string adress = String.Format("My adress {0}, and my adress {1}", str1, str2);
// Думаю тут лоика понятна.
Так сможешь формировать любой адрес запроса прямо в кубике.
 

sanitarn

Client
Регистрация
15.12.2014
Сообщения
47
Благодарностей
2
Баллы
8
Точно, нужно дать раскладку по файлам:-))
Все нужные файлы закиньте туда где у вас лежит сам файл шаблона, затем поменяйте все пути на
{-Project.Directory-}themes.xls (вместо themes подставьте нужное имя файла или укажите с помощью кнопки "обзор".

Вам понадобятся:
- файл themes.xls в таком формате:
Посмотреть вложение 39150
- proxy.txt
- User-Agent.txt
- Изначально нужно создать 2а файла для ключевых слов 1111_main.txt и 1111_all.txt Галка "создавать файл при его отсутствии" у меня стоит
Взятие файла с ключами у вас должно так происходить:
Посмотреть вложение 39153

- Далее создаем 1 файл Content_rus_1111.txt
Взятие этого файла должно так происходить:
Посмотреть вложение 39154
Все) Будут вопросы, пишите
Можно в архиве готовый проект приложить, чтобы все файлы были? ;-)
 
  • Спасибо
Реакции: bizzon

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