Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 71 ] Choď na stránku: 1, 2, 3 ďalšia
AutorSpráva
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok NapísalOffline : 12.01.2017 20:53

Chcel by som vás poprosiť o pomoc pri vylepšení, zároveň zjednodušení scriptu tohto HTML parsera.
Som samouk staršej generácie, s PHP mám malé skúsenosti a s JS ešte menej. Podklady získavam na webe a zatiaľ sa mi podarilo zosmoliť takýto zápis

Ilustračná ukážka na lepšie pochopenie:
Kód:
$doc = new DOMDocument();
@$doc->loadHTMLFile('http://www.nieco.sk/index.php'); // http://www.nieco.sk/index.php?page=1 až page=xx
$img = $doc->getElementsByTagName('img');
$adr = $doc->getElementsByTagName('a');

for ($i = 0; $i < 1; $i++){

$adr1 = $adr->item(13)->getAttribute("href");
$adr2 = $adr->item(14)->getAttribute("href");
$adr3 = $adr->item(15)->getAttribute("href");
    ...atd
$vysledok1 = $img->item(0)->getAttribute("src");
$vysledok2 = $img->item(2)->getAttribute("src");
$vysledok3 = $img->item(4)->getAttribute("src");
    ...atd
$nazov1 = $img->item(0)->getAttribute("alt");
$nazov2 = $img->item(2)->getAttribute("alt");
$nazov3 = $img->item(4)->getAttribute("alt");
    ...atd
}

z premenných $adr1,$adr2,$adr3,... získavam ID pre ďalšie spracovanie
Kód:
$id1 = explode("=", $adr1);
  $id2 = explode("=", $adr2);
  $id3 = explode("=", $adr3);
    ...atd

okrem uvedeného ešte v jednej položke potrebujem meniť jednu hodnotu, robím to pomocou str_replace(), asi takto:
Kód:
                                                                                                               
  $search = "_small.jpg";                                                                                       
  $replace = "_big.jpg";                                                                                       
  $obrazok1 = str_replace($search,$replace,$vysledok1);                                                         
  $obrazok2 = str_replace($search,$replace,$vysledok2);
  $obrazok3 = str_replace($search,$replace,$vysledok3);
  ...atd

HTML výpis
Kód:
echo "<ul>
          <li><a href='items.php?photo_id=".$id1[1]."'><img src='".$obrazok1."' alt='".$nazov1."'><div>".$nazov1."</div></a></li>
          <li><a href='items.php?photo_id=".$id2[1]."'><img src='".$obrazok2."' alt='".$nazov2."'><div>".$nazov2."</div></a></li>
          <li><a href='items.php?photo_id=".$id3[1]."'><img src='".$obrazok3."' alt='".$nazov3."'><div>".$nazov3."</div></a></li>
        </ul>";

týmto spôsobom je výsledný script veľmi rozsiahly, potrebujem spracovať minimálne 6 stránok, ten počet nemusí byť konečný,
z každej stránky 15 položiek a každá položka má 3 atribúty, posledná stránka má pohyblivý počet položiek (do 15), čo mi robí najväčšie starosti,
lebo v prípade ak je menej položiek na stránke než je v scripte uvedené, tak vyhodí chybu a nič iné sa nezobrazí,
ak je položiek viac, tak tie sa samozrejme nebudú zobrazovať,
pomohlo by mi nejaké vylepšenie cyklu, ale pre rôzne hodnoty si s tým neviem poradiť,
tiež by nebolo od veci, keby som mohol bližšie špecifikovať ktoré tagy "IMG" a "A" mám parsovať, napríklad podľa nadriadeného elementu (s id/class)
alebo podľa class požadovaného elementu, lenže toto neviem zakomponovať do parsera,
prípadne navrhnite iný parser

za každú pomoc budem vďačný,
ďakujem


Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 19.03.07
Prihlásený: 14.04.24
Príspevky: 7076
Témy: 85
Bydlisko: BA
Príspevok NapísalOffline : 12.01.2017 21:13

No, mozno zacat pouzivat polia aby si nemusel specifikovat mnozstvo premien, (ktorych, ak chapem dobre, je variabilne mnozstvo).
Kód:
$premena = array(); //init prazdneho pola
$premena[] = $nieco; //priradi do prvku s indexom 0 obsah $nieco
$premena[] = $nieco_ine; //priradi do prvku s indexom 1 obsah $nieco_ine

Co by ti to mohlo trochu zjednodusit. Nasledne prechadzat cez polia cez foreach().
Zatial tolko... uprimne, este nevidim ze co vlastne robis, ale mozno za to moze aj fakt ze som nevidel co za html parsujes.







_________________
Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 &
Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 &
Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 13.01.2017 19:12

vďaka za nakopnutie, s poliami síce nemám žiadne skúsenosti, ale pokúsim sa niečo stvoriť,
avšak ako som už písal, najviac by som uvítal nejaké podmienené parsovanie,
napríklad: vyparsovať linky typu <a class='nieco', alebo <div id='nieco'><img>, a podobne, ibaže do môjho parsera to neviem zapracovať

a o čo vlastne ide:
chcel by som parsovať z autobazar.eu, oni mi poskytli link stránky kde sa zobrazujú "moje autá", aby som si to mohol dať na "svoj web", ibaže jeho dizajn je dosť fádny a to práve chcem zmeniť, a tu nevidím inú možnosť, iba ten link parsovať a následne prispôsobiť dizajn podľa mojich predstáv, ak by to bolo nutné, môžem sem dať zdroj.kód z toho linku, ktorý mám k dispozícii.


Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok NapísalOffline : 13.01.2017 22:29

oni nemaju nejake API na tento ucel? zhodou okolnosti budem riesit v blizkej buducnosti nieco podobne.


Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 13.01.2017 22:48

osobne nie som klientom autobazar.eu, takže nemám ani tušenia, čo všetko oni ponúkajú, ale ani html, ktorý mi dávajú k dispozícii nie je celkom v poriadku, napríklad na niektorých stránkach chýba jeden ukončovací tag DIV, čo mi spočiatku spôsobilo rozhodenie stránky, a hodnú chvíľu mi trvalo, kým som to odhalil,

stránku robím pre priateľa, ktorý na takéto veci nemá čas,
ale čo sa týka môjho problému, už som k určitému zjednodušeniu zápisu dospel, (vďaka void-ovi, a poliam), avšak na to, aby celá stránka bola plne funkčná v novom dizajne, je to ešte hodne málo,

v prípade záujmu sa môžem podeliť o svoje poznatky, stačí sem (alebo do PM) napísať


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.01.2017 11:07

Skus pozriet preg_match_all, pomocou nej som som spravil tiez asi nieco co potrebujes, ja som ale robil "robota" ktory stahuje z niekolkych webov inzerat za inzeratom na jedno miesto a v nom vyhladavam co potrebujem s odkazovanim na dane weby, cize nieco ako heureka trebars. Jedine v com je problem ze ak sa cosi zmeni v dizajne webu a skript to nezaregistruje, tak ho treba upravit.







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 14.01.2017 11:43

Kvôli zmene designu chceš robiť vlastný html parser? To ti príde ako najjednoduchšia možnosť? :lol:
Prepáč, nič v zlom, len ma to vážne pobavilo :)

No a teraz k veci: Máš html kód, ktorý stiahneš a zobrazíš na svojom webe. Tomu chceš ale upraviť vzhľad. Môj návrh je -
1. neťahaj to priamo do kódu stránky, urob oddelený súbor, ktorý sa postará o stiahnutie a redesign
2. na webe to zobrazuj v iframe bez okrajov (nevalidný kód ti aspoň nerozbije stránku, ak ide len o akýsi widget)
3. na redesign použi len css, v horšom prípade javascript, ale css by malo určite stačiť. Takže v tom oddelenom php súbore to len stiahneš a prilepíš svoje pripravené css-ká. Poprípade vyhádžeš nepotrebný kód cez preg_replace.
4. užívaj







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 15.01.2017 20:33

@BX: áno, mne príde za najjednoduchšiu možnosť (aj keď som to nikde nepísal) práve to, čo pokladám za vyhotoviteľné v rozsahu mojich schopností a znalostí, keby som bol expert v kódovaní, tak by som to robil možno inak, momentálne by som si nevedel ani predstaviť ako postupovať pri takom množstve stránok podľa tvojho návrhu,
a čo sa týka samotného parsovania, nerobím vlastný parser, použijem čo som našiel na webe, iba si to prispôsobím, potrebujem z toho linku vycucnúť iba jednotlivé odkazy(link) na podstránky(page) a obrázky(id, alt/title), a tieto dáta iba vložím do vlastného dizajnu, iba spočiatku som to mal dosť krkolomné, čo sa mi podarilo úspešne zjednodušiť

momentálne už pracujem na konečnej úprave, samozrejme s pomocou parsera, pričom sa mi podarilo celkom úspešne použiť aj polia (vďaka void), snáď už nebudú nijaké ťažkosti

ďakujem všetkým za rady,


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 15.01.2017 21:37

Jedna vec co by som spravil je to, ze by som to cronoval a ukladal ci uz do db alebo do suboru, aby nacitanie tvojho webu nebolo zavisle na webe odkial tahas data, nahodou vypadne, alebo bude spomaleny, tak sa to odzrkadli aj na tvojom webe, cize urcite tuto vec cronovat a ulozeny vysledok nasledne zobrazovat na webe.







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 15.01.2017 23:33

Citácia:
osobne nie som klientom autobazar.eu, takže nemám ani tušenia, čo všetko oni ponúkajú

Tak im treba napísať a informovať sa. Najideálnejšie by bolo od nich dostať nejaký json/xml feed a robiť s dátami už čo potrebuješ. Takto totiž bude stačiť najmenšia zmena v ich html a si skončil, môžeš to parsovať a štýlovať odznovu.







_________________
C#, PHP, ...
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 16.01.2017 9:40

mokus Ak napíšeš aký problém konkrétne riešiš, tak ti mile rád napíšem lepšie riešenie.
Parsovanie dát nikdy nie je dobré riešenie, lebo ako bolo spomenuté, stačí že oni niečo zmenia a tvoj systém je razom nefunkčný. A ver tomu, že oni niečo zmenia.

Najlepším riešením je samozrejme feed (viz walther)


Naposledy upravil BX dňa 16.01.2017 10:59, celkovo upravené 1






_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2017 9:42

vsetko sa da ustriehnut, moze si tam dorobit oznamenie mejlom, ak sa nacita na niekolky krat zle, tak ho to informuje a pozrie na to, dovtedy mu bude zobrazovat poslednu spravnu verziu







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 16.01.2017 10:19

A bude to komplet zasa prerábať? Samozrejme, keď nevie čo so svojím časom, aj tak sa dá.







_________________
C#, PHP, ...
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 16.01.2017 10:58

JanoF skúšal si už niekedy takto niečo riešiť? Lebo ak otvoríš svoj systém po pol roku (samozrejme patrične naprasený a s nulovou dokumentáciou), tak sa v ňom už ani ty nevyznáš a urobiť tam čo i len malú zmenu bude veľmi zábavné.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2017 12:17

Zas neprehanajte, parsuje z webu dohromady 5 veci (obrazne povedane), cize ich zmenu dokazes upravit ak treba do 5 minut, mesiac mi uz bezi nieco podobne, co prehladava vyhladavanie 7 velkych portalov, z nich stahujem url inzeratov a tie nasledne dalsim cronom postupne prezeram cez curl a stahujem data, ktore zas dalsi cron spracuvava, takych cronov tam je niekolko ktory sa stara o nejaku cast celeho systemu a ak nastane nejaka zmena v dizajne niektoreho z portalov, tak len otvorim danu triedu a pozmenim v nej pravidla, tod vsio, robota na max hodinu ak by sa jednalo o nejake velke upravy, ci dolovanie dat z daneho portalu. Tiez som skor za parsovanie ako natahovanie daneho webu do vlastneho s css ktore mi to natiahne do mojho dizajnu. Parser cronovat a vysledok zobrazovat nasledne na webe, tak aby web nebol zavisli od nejakej strany.

2BX skusal, posledne dva tyzdne sa s niecim takym hram, resp to uz len testujem a vychytavam muchy a v kode sa vyznas aj ty ak by si ho videl a na cele som pouzil len curl a preg_match_all ako som uviedol vyssie.

Dizajn zas ziadny web nemeni ako ponozky, cize k tomu moze dojst raz za cas a aj to je dost malo pravdepobne ze to bude tak skoro a preto moze pouzit to upozornenie, kym si to neupravi, tak sa bude natahovat na jeho webe posledna funkcna verzia dat a je to.

// Spojený príspevok Pon 16.01.17 12:22

Pozeram si ten parser a cely ma 570 riadkov, cize priemerne dajme tomu 100 riadkov v ktorych stahujem 19 nadefinovanych poloziek z daneho inzeratu, cize nevidim dovod ani na nejaku dokumentaciu k niecomu takemu ked to clovek vidi hned o co tam ide.







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 16.01.2017 12:41

Samozrejme, ak sa to urobí dobre, tak sa to dá nejak uhrať, ale celkovo toto vidím ako posledné riešenie (ako napr keď chcem nelegálne sťahovať inzeráty zo 7 velkych portalov)
Ale ako sám píšeš, beží ti to pár týždňov :) Som zvedavý, ako budeš hovoriť o pol roka, keď ti tam niečo pomenia...







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2017 13:02

Neviem o tom ze by stahovanie dat z internetu bolo nelegalne, ja tie data dalej nezobrazujem nikde, je to pre osobnu potrebu, prejdu mi parserom a filtrom ktory prejde cez tie data, ak splnaju kriteria, tak sa ulozia ak nie, tak zostane len url aby tam skript uz neliezol kedze inzerat nesplna co chcem. Ak portal zmeni dizajn alebo cosi, tak si len upravim triedu kde mam parser pre dany portal, kde je hned vidiet co mam upravit, robota na 5 minut, ak je tam komplet redizajn webu, tak je to asi hodinka kym to prisposobim a ide mi to dalej. Redizajn ale niekto nespravi 10x do roka, cize to ma nezaujima a to je aj pripad mokusa, ten web odkial to bude tahat nebude predsa menit dizajn ako ponozky, cize upravit to 2x za rok co zaberie par minut zivota max nezabije nikoho a web kde to bude zobrazovat nebude zavisli na webe ktory by si tam mohol natahovat cez iframe so svojim css ci nejako inac co by mala byt alternativa nejakeho parsera. Podla mna je parser spojeny s cronom samozrejme urcite lepsia volba, aspon moj nazor ak clovek nechce byt zavisli na cudzom webe ze ci sa nacita ci nie a ako dlho bude zobrazenie mokusovej stranky cakat kym sa nacita dalsi web, alebo mu na webe bude chybat cast z druheho webu ktory sa kvoli trebars nejakej chybe nenacital, takto bude pracovat s datami ktore su ulozene unho ktore ulozil parser a ak je nejaky problem tak sa zobrazi vzdy len funkcna verzia dat.







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 16.01.2017 13:13

Pre vlastnú potrebu si to môžeš kľudne robiť všetko aj manuálne a všetkým to bude jedno. Pokiaľ to ale má byť verejná aplikácia, požiadavky zvyknú byť trochu iné.
Treba si uvedomiť, že to nie je len o kompletnom redizajne. Stačí, aby sa ti zmenilo pár elementov a tvoje parsovanie zlyhá. Veľa šťastia v hľadaní chyby. Pokiaľ web nie je mŕtvy, ale sa na ňom aj pracuje, tak úpravy a vylepšenia sa robia často.
Možno jedného dňa pochopíš.







_________________
C#, PHP, ...
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2017 13:28

A ake? budes nacitavat na svojom webe dalsi web ktory bude nastylovany tvojim css a co ked zmenia nieco a tvoje css neprepise vsetko tak ako si to mal vcera? Alebo co ked prejdes na https a web ktory chces takto nacitavat na svojom pojde vyhradne len cez http, alebo cez https s neplatnym certifikatom, to potom osetris ako ak teda nebudes web stahovat k sebe. Ako sam pises, kazda verejna aplikacia je trochu ina od nejakych aplikacii pre osobne pouzitie, ci na studijne ucely a pod. kazda verejna aplikacia je defakto predsa ako zivy organizmus o ktory sa stale niekto stara a tym padom musi sem tam osetrit aj taketo problemy ktore mozu vzniknut, ci guru koderi sa uz takymi vecami nezaoberaju lebo ich systemy su defakto uz pomaly umela inteligencia ktora si osetri kazdu zmenu, chybu ci nieco co v kode moze nastat?







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 16.01.2017 13:50

Nereagoval som na to, že si chceš ukladať lokálnu zálohu. Rovnako veľa vecí závisí od konkrétneho webu, niekedy sa taká záloha dá použiť naozaj len pre výpadok.

Je to irónia, ale hovorím práve o tomto, čo si teraz napísal aj ty: "kazda verejna aplikacia je defakto predsa ako zivy organizmus o ktory sa stale niekto stara a tym padom musi sem tam osetrit aj taketo problemy ktore mozu vzniknut". Pred chvíľou si totiž vravel, že weby sú vlastne statické a stačí urobiť úpravu len dvakrát do roka. Úpravy sú bežné a pokiaľ daný crawler web nie je len pre tvoje osobné účely a nie je to ani tvoj (jediný) príjem, málokto si môže dovoliť vraziť do úprav toľko času, koľko to bude vyžadovať. Hlavne ako ty vravíš o 7 veľkých portáloch, veľa šťastia.

Jediný spoľahlivý spôsob ako to riešiť je cez feed + backup každý deň.







_________________
C#, PHP, ...
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2017 14:23

Ale riesime tu nieco uplne ine, mokus neprezera tisice stranok, chce stahovat len jeden link so svojimi autami, cize ten parser je urcite lepsia volba ak mu to bezi na pozadi a na svojej stranke si to zobrazi ako potrebuje bez toho aby sa mu tam zobrazoval konkretny web v nejakom inom dizajne ktory mu nevyhovuje a ten cez css da do dizajnu ako potrebuje. Lenze aj to mu moze jedneho dna prestat fungovat a nacita sa mu to tam tak ako mu to nevyhovuje, cize je to uplne o tom istom ako nejaky parser ktorym stiahne data a spracuje ich ako chce. Neviem o com sa tu bavime, chapem ze na to pozeras z pohladu casu tak ako pri vsetkom co pozorujem, lebo nie kazdy ma cas sa piplat s niecim a riesit dokumentaciu a neviem co ine, no v pripade mokusa je to irelevantne, lebo k takej zmene moze dojst zajtra, ale moze k nej dojst za 5 rokov, prestat moze fungovat ako parser, tak aj jeho css ktore prepise vsetky zmeny.

Ano vsetky weby su vlastne staticke, ale k takym zmenam nedochadza kazdy den, ci tyzden, sam som sa o tom presvedcil, navyse ja ani neparsujem html ako celok ale vseobecne dane polozky s ich datami, cize aj nejaka mala zmena v html sa mojho parsera nedotkne, vsetko sa da predsa nejako vymysliet tak aby clovek nad neskorsimi upravami stravi menej casu, aj ked pociatocny cas bude mozno dlhsi. Toto neber nejako zle, len u vas aspon z mojho pohladu lepsich programatorov pozorujem jednu vlastnost a tou je prave ten tvoj spominany cas, pametam si ked som chcel riesit v minulosti posielanie mejlov podpisanych certifikatom a niekto, nepametam uz kto ale to je jedno tiez som ho bral ako urcite guru programatora odporucal pouzivat jednoznacne kniznicu ktora je na to ako stvorena, bezpecna a pod, aj ked ja som potreboval len jednu vec, ktoru ta kniznica dokaze, no zozere 100nasobne viac pamete, ale kvoli casu ktory by som na to ja mal sa s tym hrat to nebolo dobre riesenie, lebo by to nebolo tak bezpecne ak si to spravim na kolene a hlavne clovek co to chyti po mne sa v tom nemusi vyznat lebo k tomu nie je dokumentacia. Taku malu drobnost pozorujem aspon na takych co si myslim ze su isto dobry programatori a ine riesenia nie su az tak dobre lebo cas je ten najdolezitejsi udaj.

Z danych inzeratov stahujem trebars mesto, ktore prezeniem svojim zoznamom a ak ho najde pokracuje skript dalej:

Kód:
preg_match_all("'<th>Mesto:</th>(.*?)</td>'si", $data, $m);


$data je cely zdrojak cez curl, $m najdem co hladam, ak nie viac sa k tomu nevraciam.

Cize ma nejaka mala zmena v dizajne nezaujima ak sa nedotkne toho co mam v preg_match_all, preto tvrdim, ze robite z toho velke halo za nepouzivanie parsera, da sa s tym na zaciatku nejako vyhrat aby sa zmeny az tak nedotkli a tak isto moze mokus ten svoj link s autami riesit tiez a nedotkne sa ho nejaka mala jednoducha zmena v zdrojaku, no velka sa dotkne ako parsera, tak aj nejakeho css ktore by mu to predizajnovalo predsa.







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 16.01.2017 16:48

teda páni, ani som netušil, že môj prípad tu vyvolá takú "búrlivú" diskusiu,
som z toho mimo a ani netuším ako to teda mám riešiť,
do istej miery som s tým rátal, že to moje riešenie nemusí byť trvalé riešenie,
waltherova rada sa mi zdá síce rozumná, ale... jedná sa o oblasť v ktorej som ešte vôbec nepracoval, a mimochodom, ak zdrojová stránka niečo zásadne zmení, nebude to mať vplyv aj na ten FEED? nemôže sa aj ten zmeniť tak, že sa mi to všetko pokazí? a je to ešte v teoretickej rovine, pretože zatiaľ nemám odpoveď od "zdroja",
vyparsované údaje neukladám, dávam ich priamo do stránky s novým vzhľadom, takže ak vypadne zdroj, vypadne aj moja stránka,
zatiaľ ani neviem ako by som dáta ukladal, lebo napríklad neviem niektoré obrázky zobraziť, lebo sú v tvare
Kód:
https://www.autobazar.eu/sk/pics_white.php?id=3677122&pic=14
, kým ja by som potreboval konkrétny link k obrázku napr.:
Kód:
http://pics2.autobazar.eu/6913/3677122_14.jpg
, keby sa nemenil adresár pri každom aute, tak by som s tým nemal problém, bohužiaľ adresár (v tomto prípade /6913/) je vždy iný (pre každé auto zvlášť)
niekto skúsenejší by mi mohol poradiť, ako na to.


@BX: aký lepší spôsob navrhuješ?


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2017 17:01

a aky je link na tie tvoje auta?







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 16.01.2017 17:59

v akej súvislosti to chceš?


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2017 18:34

Rad by som to vyskusal spravit, kedze si myslim ze parsovat to je lepsie ako natahovat cely web s upravenym css ktory to upravi tak ako chces.







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 16.01.2017 20:10

mokus ukáž čo chceš zobraziť, kde a čo približne chceš upraviť. Kľudne v nejakej zjednodušenej podobe, nemusíš to tu hádzať celé. Len nech je vidieť pointa.

Citácia:
a mimochodom, ak zdrojová stránka niečo zásadne zmení, nebude to mať vplyv aj na ten FEED? nemôže sa aj ten zmeniť tak, že sa mi to všetko pokazí?

Nie, feed je výpis dát z databáze a je úplne nezávislý od verejného webu. Mení sa OVEĽA menej často, než web a zmeny sú typicky spätne kompatibilné (tzn. niečo len pridajú, alebo vyhodia, nikdy by nemali zmeniť názvy vlastností).
Ak by aj zmenili úplne celú databázu a nebodaj aj formát feedu, tak buď
1. feed zverzujú, takže vytvoria novú url s novým feedom a starý nechajú tak ako bol (bežná prax, ktorá BY SA MALA dodržiavať... ale pri malých weboch kto vie)
2. (toto je totálny humus a spravili by to len úplní idioti) feed pozmenia bez varovania, no neviem si predstaviť, že by nejak zásadne menili formát (napr. keď sa v starom feede nejaká vlastnosť volala "user", tak sa dá predpokladať, že to zrazu nezmenia na "web_user", alebo niečo podobné...). Takže systém bude v podstate fungovať ďalej, prinajhoršom len upravíš mapping ich dát na svoje (a to je vďaka jednotnému formátu len malá úprava).
Bežná forma feedu je napríklad RSS, ktoré stále má veľa webov (hlavne médiá, fóra, inzercia...). Napríklad https://www.autobazar.eu/sk/rss.xml


Naposledy upravil BX dňa 17.01.2017 14:47, celkovo upravené 1






_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 17.01.2017 14:36

@JanoF: poslal som ti ten link v súkromnej správe

@BX: s tým feedom si ma trochu upokojil, takže sa budem snažiť niečo od nich získať, a ak nič nedodajú, tak to budem riešiť zdokonalením parsovania aj so zálohovaním, čiže budem sa snažiť maximálne využiť vaše rady, a keď uspejem, tak už len čas ukáže, či som sa rozhodol pre správnu verziu


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 18.01.2017 0:48

sorry ze az teraz, ale mal som cely den vela toho a normalne som na tvoju ss aj zabudol, tak som teraz na to pozrel, tu mas kod:

Kód:
<?php
function curl($url) {
   $c = curl_init();
   curl_setopt($c, CURLOPT_URL, $url);
   curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($c, CURLOPT_TIMEOUT, 1);
   curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
   $s = curl_exec($c);
   curl_close($c);
   return $s;
}
function cisla($str, $flag = false) {
   if (strpos($str, "Možný odpočet DPH") !== false && $flag == true) {
      return "Možný odpočet DPH";
   } else if ($flag == true) {
      return "";
   }
   $str = str_replace(array("."), "", $str);
   $str = preg_replace("/[^0-9\/,.]/", "", $str);
   $str = str_replace(array("/"), "", $str);
   $str = str_replace(",", ".", $str);
   return (int)$str;
}

$inzeraty = array();
$url = "TVOJA_URL_AKO_SI_MI_JU_POSLAL_V_SS";
preg_match_all("'1-15 z (.*?)nájdených'si", curl($url), $r);
$pocet_stran = round((int)$r[1][0] / 15);

$k = 0;
for ($i = 1;$i <= $pocet_stran;$i++) {
   $data = curl($url . "?page=" . $i);
   preg_match_all("'div class=\"cnt\"(.*?)</div></div>'si", $data, $r);
   foreach ($r[0] as $j) {
      preg_match_all("'<div class=\"label-l\">(.*?)</div>'si", $j, $v);
      $inzeraty[$k]['nadpis'] = $v[1][0];
      preg_match_all("'<div class=\"topic\">(.*?)<BR>'si", $j, $v);
      $inzeraty[$k]['cena'] = cisla($v[1][0]);
      $inzeraty[$k]['cena_flag'] = cisla($v[1][0], true);
      preg_match_all("'</strong></div>(.*?)</div></div>'si", $j, $v);
      $inzeraty[$k]['popis'] = $v[1][0];
      preg_match_all("'<img src=\"(.*?)\" class=\"'si", $j, $v);
      $inzeraty[$k]['obrazok'] = $v[1][0];
      preg_match_all("'<a href=\"(.*?)\">'si", $j, $v);
      $podrobne_data = curl(str_replace("http:", "https:", $v[1][0]));
      preg_match_all('/<img[^>]+>/i', $podrobne_data, $v);
      for ($p = 1;$p <= (count($v[0]) - 2);$p++) {
         $pic = "http://pics2." . str_replace(array("http://thumbs.", "small.jpg"), "", $inzeraty[$k]['obrazok']);
         if ($p == 1) $pic .= "big.jpg";
         else $pic .= "$p.jpg";
         $inzeraty[$k]['podrobne_info']['obrazky'][] = $pic;
      }
      preg_match_all("'<div class=\"text-big\">(.*?)Vytlačiť'si", $podrobne_data, $v);
      $inzeraty[$k]['podrobne_info']['popis'] = $v[1][0];
      $k++;
   }
}

var_dump($inzeraty);


tie funkcie si nevsimaj, len som to narychlo skopiroval z niecoho co som mal ulozene na disku, je tam asi aj cosi navyse, ale je to len ako priklad, cele to trvalo par minut a s funkciami sa mi nechcelo saskovat a spravit to lepsie, ale princip tam je, parser ma 30 riadkov, v pripade nejakeho problemu len upravis, logiku asi pochopis, nic super, ale funguje, jednoduche, editujes behom par minut ak by nahodou trebalo, dostanes ako vysledok pole $inzeraty, kde ma kazdy inzerat nadpis, cenu, ten nejaky odpocet dph co som si vsimol ze tam zvykne pri cene byt ak nie je potrebny tu cast mozes odstranit, dalej tam mas kratky popis a link na maly obrazok, dalej tam su podrobne informacie, kde najdes vsetky obrazky + cely popis, s celym popisom som sa nehral, len som ho do popisu ulozil surovo tak ako je, s tym sa mozes vyhrat ak teda potrebujes aj tuto cast, lebo neviem ako to chces zobrazovat na webe, ci len ten zoznam, alebo takto dopodrobna. Cely vystup mozes bud cez file_put_contents stahovat k sebe na webe aby sa ti to nacitavalo z tvojho webu, alebo to mozes cele pomocou serrialize trebars ukladat do suboru ak to nechces riesit nejako extra, moznosti je xy, to cele budes mat v crone, spravis tam nejake podmienky aby sa zistovalo ci su inzeraty v pohode a mozu sa ulozit do suboru ako nove, alebo ak je nejaky problem tak nech subor neprepisuje, posle ti mejl, na webe budes pracovat len s tymto stiahnutym suborom a obrazkami ak si ich das tiez dalej stahovat a tod vsio, tvoj web ma vzdy funkcnu verziu v takom stave akom si to spravil a ide stale. Ak web odkial to tahas spravi nejaku zmenu tak si to len urpavis, ale pochybujem ze ju tak skoro spravi a ak ano, tak kym si to neupravis, tak tam budes mat poslednu aktualnu verziu a je to. Je mi jasne ze walther a bx ma za to isto sfuknu, ale ja by som to riesil nejako tak ak by som chcel mat na webe data z ineho webu ktory mi nevyhovuje a web mi dava k dispozicii taky link ako tebe, tak sa tie data daju jednoducho stahovat a prestat fungovat to moze tak isto ako by si cez iframe vkladal celu stranku len s tvojim upravenym css. Takto sa ale clovek nemusi bat, ze sa na webe bude zobrazovat nieco co nechces, cize mas zobrazenie pod svojou kontrolou a zobrazis len co chces. Trebars by ten web mal nejaky skodlivy kod, takto by si ho prenasal pomocou svojej stranky, trebars jeden z problemov ktory moze nastat, no parser ktorym si to budes stahovat cele takemu niecomu zabrani.

Ale ako pise BX, ak by si mal nejaky feed tak nemas o com, ale tak to uz vies ty ci ten web feed na tvoje inzeraty poskytuje.







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 18.01.2017 10:16

JanoF, nejdem to kritizovať, pri takto malej aplikácií je to jedno, ako sa to urobí, takže kľudne aj parsovať dáta, prečo nie.
Ale už naozaj, to najmenej čo môžeš urobiť je trocha kontroly, nech ti to zbytočne nepadá...
Kód:
if( preg_match_all("'<div class=\"label-l\">(.*?)</div>'si", $j, $v) )
    $inzeraty[$k]['nadpis'] = $v[1][0];

Práve pri takomto parsovaní nemôžeš nikdy predpokladať, že ti to prejde bez chýb.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 18.01.2017 10:39

jasne, beriem, robil som to narychlo, len ako priklad, ci to mokus pouzije a upravi si to presne ako chce je uz na nom, alebo pre ake riesenie sa rozhodne, ja len tvrdim ze v tomto konkretnom pripade co ma mokus je podla mna to parsovanie urcite lepsi zmysel ako tam cez iframe ci nejakym inym sposobom vkladat celu stranku upravenu pomocou css a aspon ja osobne by som nezobrazoval nic z ineho webu cez iframe ci inac kde by sa mohol natahovat aj nejaky skodlivy kod na danom webe napriklad, alebo ze by mi to web rozbilo, spomalilo ci cokolvek ine, jasne ze treba pocitat so vsetkymi scenarmi a osetrit si vsetky chyby, ale to som neriesil, takto ako to je to pre jeho link funguje a nepada, cize viac som sa s tym nehral







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Odpovedať na tému [ Príspevkov: 71 ] Choď na stránku: 1, 2, 3 ďalšia


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. PHP simle html DOM parser

v PHP, ASP

3

372

09.04.2013 21:22

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. HTML parser web stranok

v PHP, ASP

4

563

16.11.2007 15:41

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP programátor - PHP, MySQL, jQuery,X)Html/CSS

v Ponuka práce

0

1310

02.05.2011 12:08

magicmedia Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. HTML+PHP

v HTML, XHTML, XML, CSS

12

1136

21.02.2008 20:20

jablko05 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. CSS- php,html

v HTML, XHTML, XML, CSS

3

640

15.09.2009 21:08

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP alebo HTML

v HTML, XHTML, XML, CSS

16

835

07.01.2011 10:21

Ando Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. z PHP do HTML

v PHP, ASP

2

438

12.07.2010 12:04

vama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kliknutie PHP alebo HTML

v JavaScript, VBScript, Ajax

25

931

23.03.2009 21:33

7diwad7 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. s HTML do PhP

v PHP, ASP

12

848

22.10.2009 15:19

BYNGY Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prepojenie php html a css

v PHP, ASP

4

1296

28.01.2009 22:18

mybirthday1403 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ponuka práce html, css, php

v Ponuka práce

1

1307

10.11.2007 22:19

Ivuso Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dual combobox v HTML/PHP

v HTML, XHTML, XML, CSS

5

805

14.04.2015 17:47

void Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Praha - PHP, MySQL, HTML, Joomla

v Ponuka práce

0

1249

31.07.2007 17:01

Blue Media Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Tvorba webstranok HTML alebo PHP?

v Vzdelanie, štúdium, škola

9

647

18.12.2013 11:28

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vytiahnutie PHP kódu z HTML

v PHP, ASP

3

403

07.08.2016 12:09

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Z rss na php/html stránku

v PHP, ASP

1

667

23.10.2009 19:46

Ďuri Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra