Генератор контента на базе Спутника
В прошлой статье был опубликовал код парсера сниппетов, а теперь на его основе получился прекрасный генератор контента на базе сниппетов Спутника.
Что делает этот контент-генератор?
- Собирает текст сниппетов с выбранного количества страниц выдачи поисковика «Спутник».
- Фильтрует весь массив текстовки: удаляются дубли, остаются только полноценные предложения.
- Делает замес всех предложений в случайном порядке и вывод в виде абзацев со случайным количеством предложений.
Код генератора контента
Дабы не только читателям блога была польза, а и самому блогу, делимся ссылкой в социалках и получаем код парсера в чистом виде. Для его работы достаточно создать любую php страничку на хостинге или на локальном сервере (Денвер, Lamp и т.д.), добавить приведённый ниже код и всё будет работать.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | <? header("Content-Type: text/html; charset=utf-8"); ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Генератор контента</title> </head> <body> <div style="width:90%; text-align:justify;margin-left:5%;margin-right:5%"> <h1>Генератор контента на базе Спутника</h1> <p>Автор: <a href="//xstroy.com" target="_blank"><span style="color:red">X</span>stroy</a></p> <form method= "POST"> <p>Ключевик: <input type= "text" name= "key" size="50" value placeholder="Ключевая фраза"></p> <p>Кол-во страниц: <select name="nomer" > <option value=2 >1</option> <option value=3 >2</option> <option value=4 >3</option> <option value=5 >4</option> <option value=6 >5</option> <option value=7 >6</option> <option value=8 >7</option> <option value=9 >8</option> <option value=10 >9</option> <option value=11 >10</option> </select> </p> <input type= "submit" value= "Парсить"> <input type="reset" name="Reset" value="Очистить форму"> <p>Парсим текст сниппетов</p> <hr size="1"> </form> <? $zz=$_POST['nomer']; $string=$_POST['key']; $zzz=$zz-1; if($zzz>0 and $string){echo '<h3>Выдача по запросу: '.$string.'</h2><p>Количество страниц выдачи для парсинга (по 10 url): '.$zzz.'</p><hr>';} echo '<p><button class="js-textareacutbtn" disable>Копировать в буфер</button><button class="js-textareadeletebtn" disable>Очистить</button></p><textarea class="js-cuttextarea" style="width:100%;height:500px">'; if($string){ $query = urlencode(mb_strtolower($string, 'UTF-8')); $i=""; $nomer=""; $schet=0; $textovka=array(); for($i=1;$i<$zz;$i++) { $url= "http://www.sputnik.ru/search?q=$query$nomer"; $json = file_get_contents($url); $json=str_replace("<b>","",$json); $json=str_replace("</b>","",$json); preg_match_all( '/(?<=<div\ class=\"b-result-text\">).*?(?=<\/div>)/is' , $json , $snippet ); for ($x=0; $x<10; $x++) { $schet=$schet+1; array_push($textovka,$snippet[0][$x]);$kucha=$snippet[0][$x]." ".$kucha; } $nomer="&from=".$i."1"; // sleep for 10 seconds sleep(1); }} preg_match_all( '/\b[A-ZА-Я](?:\w+[,;:]? ){3,}\w{2,}[.!?]/u' , $kucha , $stroki ); $stroki=array_unique($stroki[0]); shuffle($stroki); $i=rand(3, 9); $t=1; function mb_strtoupper_first($str, $encoding = 'UTF8') { return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) . mb_substr($str, 1, mb_strlen($str, $encoding), $encoding); } echo mb_strtoupper_first(strtolower($string))."\r\n\r\n"; foreach($stroki as $key => $value) { if($value){ if($t<$i){echo $value." "; $t++;} else {echo $value."\r\n\r\n"; $i=rand(3, 9);$t=1;} } } echo '</textarea>'; ?> <script> var cutTextareaBtn = document.querySelector('.js-textareacutbtn'); cutTextareaBtn.addEventListener('click', function(event) { var cutTextarea = document.querySelector('.js-cuttextarea'); cutTextarea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; console.log('Cutting text command was ' + msg); } catch(err) { console.log('Oops, unable to cut'); } }); var cutTextareaBtn = document.querySelector('.js-textareadeletebtn'); cutTextareaBtn.addEventListener('click', function(event) { var cutTextarea = document.querySelector('.js-cuttextarea'); cutTextarea.select(); try { var successful = document.execCommand('delete'); var msg = successful ? 'successful' : 'unsuccessful'; console.log('Cutting text command was ' + msg); } catch(err) { console.log('Oops, unable to cut'); } }); </script> </div> </body> </html> |
Из генератора удалил чекбоксы выбора того, что парсить в сниппете, т.к. только текстовка представляет максимальный интерес и некоторое разнообразие слофоворм.
Т.к. задачи могут быть разными, то не стал обрамлять вывод тегами, а оставил для удобства текстовку в чистом виде. Практически сейчас получается аккуратненькая статья, которую можно без проблем запостить туда, где контент как-таковой особо не важен, но есть предположение, что сие чудо должно и будет приносить трафик. Предложение основано не на простых догадках, а на эксплуатации уже на протяжении пары лет нескольких бложиков, наполненных аналогичным способом с помощью автодоргена WP SED.
Правда в своих шаблонах я также использовал большое количество фотографий, но думаю, что на днях и сюда прикручу простенький парсер изображений, а возможно и релевантного видео с ютуба ))
P.s. Пробовал скормить несколько статей из генератора Гуглу в лоб через аддурилку, но ему не понравилось, а значит странички нужно разбавлять чем-то ещё для уникальности сборки, да и Яндекс менее привередлив. Кроме-того не забываем про траст сайтов, на которых контент размещается. Я пробовал размещать на только что созданном форуме без индекса и там Гугл их выплюнул пожевав немного, а на стареньком блоге всё прекрасно проиндексировалось.
Интересно, но есть вопросы.
Что даст сегодня такой текст? По-моему если использовать его на сайте с ПС посетителя не стоит ждать.
На практике, какая уникальность у этого контента?
Интересно, если по определенному ядру сделать сайт из таких текстов, что можно получить?
Уникальность Денис нулевая )) Однако, в конце статьи указано, что даже с таким контентом траф собрать вполне реально. Во всяком случае ни один из моих тестовых сайтов не выпал из индекса, за исключением того момента, когда я пытался делать определённые телодвижения в панели вебмастера Яши.
Низкочастотники с длинными хвостами никогда не имели такого качественного контента )), а если снабдить это дело фотками с альтами-ключами, то всё работает на ура.
Кроме того, генератор при желании может работать с любыми текстами, выдавая на гора полностью читабельные тексты с легка утраченной связью предложений. Если есть источник уника внавал, можно его легко пропустить чрез этот скрипт.
Уже начинал делать вывод блоков li, но пока убрал этот функционал. А вообще, кто тестирует, тот знает, что работает, а что нет, посему флаг в руки и вперёд… Потом расскажете.
Спасибо, заинтересовался, попробую) Расскажу, что получилось.
поделилась в г+, но ларчик не открылся… плизз скриптик…
Да уж, G+ перестал работать. Лайк ВК нормально открывает код.
Кроме того, генератор при желании может работать с любыми текстами, выдавая на гора полностью читабельные тексты с легка утраченной связью предложений. Если есть источник уника внавал, можно его легко пропустить чрез этот скрипт.