Avatar uživatele
bolak

Program na vyhledání sekvence znaků

Potřebuju následující: Mám internetovou diskuzi kde každý uživatel píše pod svým jménem nějaké příspěvky, a já potřebuju vytáhnout jména všech uživatelů, v jejichž příspěvcích se objeví určitá sekvence znaků (v jednotlivých slovech), napříkad „http“ a následně odfiltrovat jména uživatelů která jsou duplicitní.

Dokázal by někdo vytvořit takovej program? A pokud jo, jak moc je to složitý a jak dlouho by to trvalo?

Zajímavá 3Pro koho je otázka zajímavá? johana 56, briketka10, anonym před 4313 dny Sledovat Nahlásit



Odpovědi
Avatar uživatele
odpomass

No, jelikož nevíme o tvých stránkách z technického hlediska prakticky nic, tak těžko radit. Nevíme, jestli si děláš stránky sám, v čem, jak, nebo jestli využíváš služby nějaké další strany. Taky těžko říct, jak myslíš „odfiltrovat jména uživatelů, která jsou duplicitní“, ale obvykle se věci podobného charakteru řeší PHP skriptem, java skriptem, popř. dalšími nástroji jako AJAX, různé frameworky apod.

0 Nominace Nahlásit


Avatar uživatele
anonym

Zadarmo ti nikdo psát nebude!, ale poradím ti:

Pomocí PHP a MySQL (hádám že to jede na PHPBB) si načti všechny příspěvky do (nejlépe) pole následně si vytvoř regulérní výraz na to co potřebuješ (v tvém případě http) a pak porovnávej a do dalšího pole si např. ulož jméno uživatele a počet duplicit a pak podle podmínky si to pole vypiš.

  • Zkušený člověk se znalostmi to dokáže za 30minut
  • Začátečník bez znalostí (hledá v dokumentaci) to dokáže za 3 – 4 hodiny

0 Nominace Nahlásit

Avatar uživatele
RedC22

Předpokládám, že myslíš z pohledu uživatele, nikoliv tvůrce stránky (to by bylo o dost jednodušší).

Celej problém bych rozdělil na dva kroky:

  1. Stáhnout stránky pro offline analýzu (Wget by měl stačit)
  2. Analyzovat obsah. V podstatě to je jednoduchej program pro toho, kdo umí regulární výrazy.

0 Nominace Nahlásit


Diskuze k otázce
Avatar uživatele
RedC22

Tak jsem si dal du práci a napsal jsem takovej program. Má to jen takovej drobnej háček – je to dost uživatelsky nepřívětivý (tj. musíš vymyslet regulární výraz, kterej ti ze stažených stránek vyzobe jména). Trochu jsem si s tím hrál a vytáhnul jsem pár uživatelských jmen zde z Odpovědí – http://pastebin­.com/n66wT1tT (uměl by samozřejmě i vyfiltrovat jména, která splňují určitá kritéria)
Jestli chceš, můžu ti ho někam nahrát, ale bez základní znalosti regulárních výrazů se prostě neobejdeš. A hodí se i trochu vědět, co to je HTML.
Co to je reg. výraz.: http://www.re­gularnivyrazy­.info/regular­ni-vyrazy-zaklady.html

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

Já to omrknu a kdyžtak se ještě zeptám :) nahraj mi to třeba na uložto. Díky moc.

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
RedC22

Přečti si ctime.txt.
http://uloz.to/xy­biq82/extraho­vacstringu-v01-rar

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

Jenom pro informaci, v žádným programovacím jazyku sem nikdy nedělal, takže na mě nevytahujte ty svý odborný zkraky jako PHP, MIT, BFLMPSVZ a podobně, není vám to nic platný :)

Já už jsem kdysi dávno něco podobnýho potřeboval, ale řešil sem to tenkrát tak, že sem zmáčknul v prohlížeči CTRL+F, tak sem si zadal sekvenci, a když mi to našlo shodu, tak sem najel na začátek odstavce a jméno přispěvatele si zkopíroval do excelu. Když jsem měl hotovo, tak sem dal akorát „seřadit sestupně“ a duplicity sem viděl hned, protože byly hned pod sebou a nemusel jsem prohledávat každý jméno zvlášť v celým sloupci, jenže většinou to byla záležitost několika minut. Teď jde o o tisíce stran textu a tímhle způsobem se to řešit nedá, tak hledám nějakou automatiku.

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
RedC22

l564:
Jestliže by byl provozovatel on, nebylo by jednodušší sestavit správný sql dotaz? To je tak na 5 minut i s hledáním v dokumentaci, nemyslíš?

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

Hele, asi takhle, co je to SQL? :))

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
RedC22

SQL je v podstatě jazyk pro komunikaci s databází (v databázi je všechno uložený). Kdybys měl přístu k databázi, stačí jí říct něco takovýho „select name from users where name like ‚%http%‘;“ a ono ti to vypíše všechny uživatele, kteří ve jménu mají http. Jenže ty přítup k databázi nemáš, protože jseš tam jen uživatel, že?

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

Já dokonce ani nejsem uživatel, pouze náhodný kolemjdoucí. :)

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

odpomass: ty se vyznáš, v prohramování? nešlo by to provést čistě „textově“?

Z celé stránky se vytáhne text, uloží se do nějakého textového dokumentu a program by pak oddělil jednotlivé příspěvky od sebe. Každý příšpěvek v diskuzi totiž začíná stejným textem, a to „Jméno:“. A pak už by to prohledávalo v jednotlivých odstavcích tu sekvenci znaků, a pokud by byl nález pozivitvní, vyhodilo by to jméno uživatele (text který se nachází slovy „Jméno:“ a „Datum:“ .

Přijde mi, že to nemůže bejt tak složitý. O něco podobnýho sem se totiž kdysi pokoušel v excelu, ale nešel nenašel jsem způsob jak oddělit odstavce od sebe, jako by to byly jednotlivé celky.

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
odpomass

No, tak to bych možná spíš viděla na nějakej plugin do prohlížeče, ale fakt nevim, k čemu ti to bude a proč ti nestačí CTRL+F…

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

A existuje nějakej takovej plugin? CTRL+F je v tomhle případě k ničemu, trvalo by to týdny. Program by to jistě zvládl za několik málo vteřin, a pokud by se v tom někdo vyznal a dokázal to vyprodukovat za několik minut…

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
odpomass

Stále nevím, k čemu ti to bude, takže ti blíž nemohu poradit ;)

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
odpomass

Zkus ten Wget jak navrhoval RedC22, to by asi bylo řešení…

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

Když já zas nevim co to je, a to bych musel nejspíš dlouze studovat ne? :) A mám jistotu že až to všechno nastuduju, tak že to opravdu půjde?

Pokud s tím někdo umíte dělat, tak mě prosím poraďte co a jak.

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
odpomass

Hochu, v životě se prostě musíš učit novým věcem. Zvlášť, pokud je chceš ovládat ;) A myslím, že tvůj účel tenhle software splní…

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

Když já bych chtěl koláče bez práce..

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
RedC22

Bolak: odpomass a l564 hlavně předpokládají, že ty jseš provozovatel webu resp. tvůrce webu. Já nevim proč, ale já si myslím, že ty chceš takhle analyzovat web někoho jinýho. Je to tak?

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

To „mám“ je zřejmě matoucí. Nikoliv „mám“ jako že vlastním, ale „mám“ jako že „mám před sebou“.

před 4313 dny Odpovědět Nahlásit
Avatar uživatele
bolak

Přesně tak, kdybych si uměl naprogramovat vlastní stránky, tak bych s tímhle nejspíš neměl problém :)

před 4313 dny Odpovědět Nahlásit
Nový příspěvek
Zajímavé otázky v kategorii Počítače a internet