Есть ли программа для отбора кейвордов? - Форум успешных вебмастеров - GoFuckBiz.com - Страница 6
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.1887
BTC/USD67735.5502
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 21.08.2020, 13:18
Start Post: Есть ли программа для отбора кейвордов? 
  #51
disqus
Senior Member
 
Аватар для disqus
 
Регистрация: 29.08.2016
Сообщений: 1,616
Бабло: $323550
По умолчанию

Столкнулся с проблемой, что из всех мною найденных программистов в интернете, никто не знает, как отобрать кейворды из 1 файла, которые не повторялись бы с кейвордами во втором файле и сохранились бы в третьем файле.

Звучит вроде так елементарно.. но никто не может сделать... это реально неподсильная задача?
disqus вне форума  
Старый 27.08.2020, 12:50   #52
disqus
Senior Member
 
Аватар для disqus
 
Регистрация: 29.08.2016
Сообщений: 1,616
Бабло: $323550
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от dmjROV Посмотреть сообщение
вот, на скорую руку, питон, должно работать.
у меня выбивает ошибку:

PHP код:
 File "test.py"line 8in <module>
    
with open(main_fileencoding='utf-8') as f1open(filter_fileencoding='utf-8') as f2open(out_file'w'encoding='utf-8') as f3:
TypeError'encoding' is an invalid keyword argument for this function 
disqus вне форума  
Старый 27.08.2020, 14:59   #53
jared5000
Member
 
Аватар для jared5000
 
Регистрация: 29.04.2008
Сообщений: 46
Бабло: $5790
По умолчанию

Цитата:
Сообщение от disqus Посмотреть сообщение
Цитата:
Сообщение от Novgorodcev Посмотреть сообщение
Если так то по любому первый скрипт воздух молотил ))

Давай сформулируем четкое ТЗ, это половина дела )))

Пока получается так:
Надо убрать из файла ссылки.тхт те строки, которые содержат строки из файла кейворды.тхт, и сохранить результат в файл. Порядок строк в файле результат не важен. Верно?
сорян, выпал на несколько дней из онлайна.

давай ТЗ сформулируем.

1. Есть пачка ссылок на доры, которые я спамлю-продвигаю. она находится в файле dory.txt в виде ссылок <a href="dory1.com">keyword</a>
2. Есть файл с кейвордами keywords.txt из которого я беру кейворды для генерации новых доров.
3. Т.к я заметил, что доргены очень часто берут одни и теже кейворды, даже выбирая рандомно,я решил попробовать делать доры только с уникальными кейвордами.
По-этому цель такая. Брать кейворды, который ещё не использовались в дорах, и генерить по ним доры.

Значит цель такая: отобрать для генерации доров 150,000 кеев из пачки keywords.txt, которые не повторялись бы в файле dory.txt
А уже надо для этого вытаскивать кейворды из анкоров или что-либо ещё , совершенно не важно.

Вижу скрипт на пхп сделал Matt Cuts , надо его проверить. И на выходных один прогер сделал прогу на Windows для этого. Тоже её сейчас проверю...

Впервые имел дело с челом, который делает проги на windows ... ))
PHP код:
<?php

$dory 
'dory.txt';
$keywords 'keywords.txt';
$new_keywords 'new_keywords.txt';

//1 да, 0 нет. проверять с учётом регистра
//Например если 0 то,
//Бабло и бабло - это одинаковые слова для проверки
//если 1, то это будут уже два разных слова для проверки и оба будут записаны в new_keywords.txt
$register_check 0;


//Бля тут комменты
$dory_arr = []; //массив для кейвордов dory.txt
$keywords_arr = []; //массив для кейвордов из keywords.txt

//берём весь текст из dory.txt
$text file_get_contents($dory);

//проверка не пустой ли файл
if(!$text) die("dory.txt пустой");


//выпарсим из него все кейводры в ссылках
preg_match_all("~>(.*?)</a>~im"$text$matchPREG_SET_ORDER);

//ещё проверка на наличие кейвордов в ссылках
if(empty($match[0][1])) die("Не нашёл кейвордов в ссылках и тут нам делать нех.");

//теперь переберём все найденые кейворды и добавим их в массив $dory_arr чтобы потом можно было их использовать как фильтр
foreach ($match as $keyword) {
    
$key =  trim($keyword[1]);
    
//если регистр важен то все кейводры из дори запишем в нижнем регистре, чтобы после сравнить
    
if($register_check) {
        
$dory_arr[] = mb_strtolower($key"utf-8");
    } else {
        
$dory_arr[] = trim($key);
    }
}

$dory_arr array_unique($dory_arr); //на всякий случай почистим массив от дубликатов, вдруг в ссылках были кейворды 2 раза

//теперь берём новые кейворды из keywords.txt
$text file_get_contents($keywords);

//ещё проверка на наличие кейвордов в keywords.txt
if(!$text) die("файл keywords.txt пустой, а должно быть что то....");

//разобьём строку кейвордов на массив
$keywords_arr explode("\n"$text);

//переберём массив
foreach ($keywords_arr as $keyword) {
    
$keyword trim($keyword);
    if(!
$keyword) continue; //если пустая строка то пропускаем

    //если регистр, то для проверки сделаем кейворд в нижнем регистре
    
if($register_check) {
        
$keyword mb_strtolower($keyword'utf-8');
    }

    
//если кейворда нет в списке кейводров dory.txt, то запишем его в  new_keywords.txt
    
if(!in_array($keyword$dory_arr)) {
        echo 
"Добавил новый кейвод: {$keyword}".PHP_EOL// это просто для информации в консоли
        //новый кейворд дописывается к предыдушим, поэтом перед новым запуском нужно удалять файл new_keywords.txt
        
file_put_contents($new_keywords$keyword."\n"FILE_APPEND);
    }
}

return print(
"\n\n\nФиниш");
Накидал комментов к коду, чтобы потом сам мог править код.

Последний раз редактировалось jared5000; 27.08.2020 в 15:08.
jared5000 вне форума  
Старый 27.08.2020, 16:52   #54
dmjROV
Senior Member
 
Аватар для dmjROV
 
Регистрация: 22.06.2008
Сообщений: 603
Бабло: $122240
По умолчанию

Цитата:
Сообщение от disqus Посмотреть сообщение
Цитата:
Сообщение от dmjROV Посмотреть сообщение
вот, на скорую руку, питон, должно работать.
у меня выбивает ошибку:

PHP код:
 File "test.py"line 8in <module>
    
with open(main_fileencoding='utf-8') as f1open(filter_fileencoding='utf-8') as f2open(out_file'w'encoding='utf-8') as f3:
TypeError'encoding' is an invalid keyword argument for this function 
у тебя python 2 походу, нужен 3ий.
dmjROV вне форума  
Старый 28.08.2020, 15:01   #55
disqus
Senior Member
 
Аватар для disqus
 
Регистрация: 29.08.2016
Сообщений: 1,616
Бабло: $323550
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от jared5000 Посмотреть сообщение
Накидал комментов к коду, чтобы потом сам мог править код.
Идеально. Спасибо большое. Дай wmz скину на пиво

У меня появилась ещё одна идея, только я не знаю как её воплотить или сформулировать Быть может подскажешь jared5000, или кто-то ещё.

У меня есть пачка из 100 доменов с дорами.
Некоторые из них стрельнули в топ, а некоторые вообще 0.

Я сгенерировал на этих доменах разное количество доров, половина из которых повторяется. (т.к дорген брал одни и теже кейворды рандомом.)

Все ссылки на доры хранятся в файле dory.txt в формате ссылок <a href="dor1.com">keyword</a>

Хотелось бы убрать дубли тех страниц, домены которых не выстрелили.

Понимая, что api для скрипта дело геморное, можно хотябы в ручную.
Ввести список доменов, где страницы с повторяющими keyword оставить, а другие удалить.

Тем самым оставив домены по которым идет трафик, и оставить домены по которым не идет трафик, но с уникальными ключами.

пример.

загружаемый файл dory.txt
<a href="horoshij-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-2</a>

на выходе result.txt
<a href="horoshij-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-2</a>

Последний раз редактировалось disqus; 28.08.2020 в 15:10.
disqus вне форума  
Старый 28.08.2020, 17:17   #56
jared5000
Member
 
Аватар для jared5000
 
Регистрация: 29.04.2008
Сообщений: 46
Бабло: $5790
По умолчанию

Цитата:
Сообщение от disqus Посмотреть сообщение
Цитата:
Сообщение от jared5000 Посмотреть сообщение
Накидал комментов к коду, чтобы потом сам мог править код.
Идеально. Спасибо большое. Дай wmz скину на пиво

У меня появилась ещё одна идея, только я не знаю как её воплотить или сформулировать Быть может подскажешь jared5000, или кто-то ещё.

У меня есть пачка из 100 доменов с дорами.
Некоторые из них стрельнули в топ, а некоторые вообще 0.

Я сгенерировал на этих доменах разное количество доров, половина из которых повторяется. (т.к дорген брал одни и теже кейворды рандомом.)

Все ссылки на доры хранятся в файле dory.txt в формате ссылок <a href="dor1.com">keyword</a>

Хотелось бы убрать дубли тех страниц, домены которых не выстрелили.

Понимая, что api для скрипта дело геморное, можно хотябы в ручную.
Ввести список доменов, где страницы с повторяющими keyword оставить, а другие удалить.

Тем самым оставив домены по которым идет трафик, и оставить домены по которым не идет трафик, но с уникальными ключами.

пример.

загружаемый файл dory.txt
<a href="horoshij-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-2</a>

на выходе result.txt
<a href="horoshij-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-2</a>
PHP код:
<?php

$dory 
'dory.txt';
$bad_domains "plohoy_domen.txt"//список плохих доменов
$dory_good 'clean_dory.txt'// чистый dory.txt

//берём всё из дори
$cont_of_dory file_get_contents($dory);

// проверка на пустоту
if(!$cont_of_dory) die("dory пустой :(");

// разобьём ссылки на строки
$urls explode("\n"$cont_of_dory);

// возьмём список плохих доменов
$text file_get_contents($bad_domains);

// ещё проверка на пустоту
if(!$text) die("plohoy_domen.txt пустой :(");

// розобьём плохие домены на строки
$bad_domains_arr explode("\n"$text);

// почистим
$bad_domains_arr array_map('trim'$bad_domains_arr);



//теперь соберём все кейворды из dory.txt
preg_match_all("~>(.*?)</a>~im"$cont_of_dory$matchPREG_SET_ORDER);
//массив в котором будут храниться все слова и их количество повторений
//например если кейворд встречается два раза то у него будет значение 2, кароче это чтобы потом отсеять дубликаты
$wordstat = [];
foreach (
$match as $m) {
    if(empty(
$m[1])) continue;
    
$word trim($m[1]);
    @
$wordstat[$word]++; //тут какой то непобеждаемый нотис, хз как исправить так что просто заглушил его.
}


// теперь пошли по всем ссылкам из dory.txt
foreach ($urls as $key => $url) {
    
//ну и заодно запустим перебор по всем плохим доменам
    
foreach ($bad_domains_arr as $bad) {
        
// если строка содержит адрес плохого домена
        
if(stristr($url$bad)) {
            
// возьмём кейворд из этой строки
            
preg_match("~>(.*?)</a>~im"$url$match);
            
// если смогли взять кейворд
            
if(!empty($match[1])) {
                
// и если такой кейворд встречается чаще 1 раза
                
if($wordstat[trim($match[1])] > 1) {
                    
//удалим строку ссылки
                    // получается в этой ссылке есть плохой домен и кейворд который встречался больше 1го раза.
                    
unset($urls[$key]);
                    echo 
"Удалил строку {$url}".PHP_EOL;
                }
            }
        }
    }
}

// объеденим ссылки массива и запишем в файл clean_dory.txt
// при каждом запуске содержимое clean_dory.txt будет перезаписываться.

file_put_contents($dory_goodjoin("\n"$urls));

return print(
"\n\n\nФиниш");
Вроде как то так.
Напиши потом работает или нет, самому инетресно.

Я проверял на таких данных и вроде работало.
Цитата:
загружаемый файл dory.txt
<a href="horoshij-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-2</a>

на выходе result.txt
<a href="horoshij-dor.com">keyword-1</a>
<a href="plohoj-dor.com">keyword-2</a>
jared5000 вне форума  
Старый 20.09.2020, 20:53   #57
programing
Юниор
 
Регистрация: 20.09.2020
Сообщений: 5
Бабло: $1510
По умолчанию

есть стоит погуглить, либо можно самому написать простенький скрипт
programing вне форума