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

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

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

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

Звучит вроде так елементарно.. но никто не может сделать... это реально неподсильная задача?
disqus вне форума  
Старый 21.08.2020, 16:48   #12
Novgorodcev
Юниор
 
Аватар для Novgorodcev
 
Регистрация: 05.07.2020
Сообщений: 11
Бабло: $3150
По умолчанию

погоди, у тебя в файлах разные строки получается?
в одном ссылки в другом кейворды?
скинь по 5 строк из каждого.
Novgorodcev вне форума  
Старый 21.08.2020, 17:03   #13
disqus
Senior Member
 
Аватар для disqus
 
Регистрация: 29.08.2016
Сообщений: 1,616
Бабло: $323550
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Novgorodcev Посмотреть сообщение
погоди, у тебя в файлах разные строки получается?
в одном ссылки в другом кейворды?
скинь по 5 строк из каждого.
да

ссылки.тхт:
<a href="http://google.com">1</a>
<a href="http://bing.com">2</a>
<a href="https://yahoo.com">3</a>

кейворды.тхт
4
5
1

впринципе я могу вытащить кейворды из ссылок.
disqus вне форума  
Старый 21.08.2020, 17:07   #14
Бздетектив
Ебланнед
 
Регистрация: 02.10.2015
Сообщений: 2,142
Бабло: $270665
По умолчанию

В keywordkeeper можно такое сделать, если подумать 5 секунд
Бздетектив вне форума  
Старый 21.08.2020, 17:11   #15
Novgorodcev
Юниор
 
Аватар для Novgorodcev
 
Регистрация: 05.07.2020
Сообщений: 11
Бабло: $3150
По умолчанию

Если так то по любому первый скрипт воздух молотил ))

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

Пока получается так:
Надо убрать из файла ссылки.тхт те строки, которые содержат строки из файла кейворды.тхт, и сохранить результат в файл. Порядок строк в файле результат не важен. Верно?
Novgorodcev вне форума  
Старый 21.08.2020, 18:28   #16
HelgerLEE
Юниор
 
Регистрация: 20.08.2015
Сообщений: 25
Бабло: $13505
По умолчанию

В Пингвине достаточно несколько кликов мышкой:
- загрузить файл 1;
- в исключения загрузить файл 2;
- отфильтровать и сохранить результат.
https://x-parser.ru/software/9-penguin.html
HelgerLEE вне форума  
Старый 21.08.2020, 19:02   #17
Morgul
Senior Member
 
Аватар для Morgul
 
Регистрация: 03.10.2010
Сообщений: 1,712
Бабло: $296955
По умолчанию

Странных ты прогеров нашел. Какая-то школьная задача, по чесноку.
Или ты тз так составляешь, что даже на гофаке ввел в заблуждение людей (меня в том числе). Исходя из последних твоих слов, сперва надо убрать теги ссылок и оставить только кеи. Ну это regexp, простая задача.
Далее уже решение выкладывали. Тот же KeyWordKeeper это умеет. Но если данных очень много, тут, конечно, надо по производительности еще шарить. Но убрать дубли - это как бы изи таск )
Morgul вне форума  
Старый 21.08.2020, 19:19   #18
excl
Senior Member
 
Аватар для excl
 
Регистрация: 24.06.2007
Сообщений: 5,031
Бабло: $3619531
По умолчанию

В кейколлекторе описанным мною способом на первой странице можно и лям и больше ключей довольно быстро сделать, а потом результат экспортировать в файл.
excl на форуме  
Старый 21.08.2020, 20:18   #19
Dor
Senior Member
 
Регистрация: 24.01.2013
Сообщений: 1,562
Бабло: $213465
По умолчанию

юзаю Penguin Premium
Dor на форуме  
Старый 21.08.2020, 21:22   #20
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 15,876
Бабло: $1862785
По умолчанию

держи
компиляция в линухе через g++ -O3
PHP код:
// отобрать кейворды из 1 файла, которые не повторялись бы с кейвордами во втором файле и сохранились бы в третьем файле

#include <iostream>
#include <string>
#include <fstream>
#include <unordered_map>

using namespace std;
using umap unordered_map<stringbool>; // vector не подойдёт, ибо дубли

static const string
    ffn1        
"file1" // эти кейворды поедут в ffn3 (тут '<a href="http://google.com">keyword</a>')
    
,ffn2       "file2" // ...если их нет здесь (тут 'keyword')
    
,ffn3       "file3"
;

//##############################################################################
// все кеи из file2 кладутся в umap и будут жить в памяти
umap ffn2_to_umap()
{
    
ifstream fd(ffn2);
    if (!
fd)    {exit(1);} // файл протух

    
umap m;
    
string str// строка из файла
    
while (getline(fdstr)) {
        
m[str] = true;
    }
//cout << m["key1"] << '\n';

    
fd.close();
    return 
m;
}
//##############################################################################
// отобрать кейворды из ffn1, которые не повторялись бы с кейвордами в ffn2 и сохранились бы в ffn3
void parse()
{
    
umap m ffn2_to_umap();

    
ofstream fd_ffn3(ffn3);     // сюда пишем найденные кеи
    
ifstream fd_ffn1(ffn1);     // ...отсюда
    
if (!fd_ffn1 || !fd_ffn3)
        {exit(
2);}              // файлы протухли

    
string strkeyword;// строка из файла + keyword
    
uint cnt    0
        
,cnt2   0     // счётчик строк и найденных кеев
        
,start  0     // где искать 'keyword' (от)
        
,end    0     // ...до
    
;

    
// тут keyword "выкусывается" из строки и сразу ищется в umap. Если там нет, то кладётся в ffn3.
    
while (getline(fd_ffn1str)) // <a href="http://google.com">keyword</a>
    
{
        
cnt++;

        
// строка должна начинаться с '<', иначе сообщение в консоль
        
if (str.front() != '<') {
            
cout << "ERR: строка №" << cnt << " НЕ является ссылкой: " << str << '\n';
            continue;
        }

        
start   str.find_first_of('>'10);
        
end     str.find_first_of('<'12);
        
keyword str.substr(start +1,   end -start -1);
//printf("start = %d; end = %d\n", start, end);
//cout << str << "\nkeyword = " << keyword << '\n';

        // если кей уникальный, то в ffn3
        
if (!m[keyword]) {
            
fd_ffn3 << keyword << '\n';
            
cnt2++;
        }
    }

    
fd_ffn1.close();
    
fd_ffn3.close();

    
cout << "\nнайдено кеев: " << cnt2 << '\n';
}

//##############################################################################
int main(int argcchar *argv[])
{
    
system("clear");
    
setlocale(LC_ALL"ru_RU.utf8");

    
parse();

веломан вне форума  
Старый 21.08.2020, 21:56   #21
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Канпилять?))) Велик ты с ума сошел.
Hector вне форума