» »

Iskalnik po spletnih trgovinah: kje začeti pri podatkih?

Iskalnik po spletnih trgovinah: kje začeti pri podatkih?

HotBurek ::

Pozdravljeni.


V planu imam izdelati iskalnik po spletnih trgovinah.

Ker na začetku ni nobenega prometa, me zanima kater pristop zbiranja podatkov izbrati.


Razmišljam med dvema opcijama:

1 - Zbiral bi podatke manjših, manj znanih trgovin (oz. pridelovalcev) s prehrano.

Kar mi je zanimivo, ker za mainstream (Špar, Merkator, Tuš, ...) že obstajajo takšni iskalniki, za manjše pa ne. Tu so mi zanimive predvsem razne kmetije in manjše trgovine, ki prodajajo bio pa to.

Primer takšnih trgovin:
http://www.sadjarstvo-skof.si/trgovina....
https://www.kmetijaflis.si/trgovina/
https://trgovina.kmetijapustotnik.si/sh...

Prdenost tega je, da je manj podatkov in se lažje dela na kvaliteti. Slabost pa ta, da gre za manjši nabor podatkov, ki mogoče ne privabi dovolj uporabnikov, da bi iskalnik lahko bil zanimiv za ponovni obisk.


2 - Zbiral bi podatke vseh trgovin (nekje ~5000) iz seznama, iz celega sveta (brazilija, belorusija, afrika, japonska, ...), in različnih jezikov.

Tu bi bila prednost količina.

Slabosti pa:
- dolg čas zbiranja podatkov in tudi zastareli podatki (stari nekaj dni)
- mix vseh jezikov pri iskanju v autocomplete in pri rezultatih
- veliko rezultatov, ki bi lahko bili manj kvalitetni
- za slike verjetno ne bi bilo prostora (vsaj na začetku ne)


Torej, prva opcija je niša, druga je bruteforce vsega možnega naenkrat.

Skratka, kaj mislite, kako bi bilo potrebno začet zbirati podatke, da bi zadeva postala zanimiva do te mere, da bi se uporabniki začeli vračati?

Cilj pa je narediti iskalnik po vseh spletnih trgovinah, minus teh nekaj ta največjih svetovnih.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

RedDrake ::

Sizifovo delo.
Večini spletnih trgovin ni v interesu, da so primerjane.
Jaz lahko neko spletno trgovino predelam tako, da tvoj parser ne bo več prijel in zato porabim 5 minut. Ti boš rabil pa velikostni razred (ali več njih) več časa da boš nazaj usposobil. Vedno boš zadaj. Lahko tudi naredim tako, da se cel api naključno spreminja vsakih N ur.
Edini res dober način bi bil, da prepričaš trgovine, da same dajo podatke.

Zgodovina sprememb…

  • spremenil: RedDrake ()

Phantomeye ::

RedDrake je izjavil:

Sizifovo delo.
Večini spletnih trgovin ni v interesu, da so primerjane.
Jaz lahko neko spletno trgovino predelam tako, da tvoj parser ne bo več prijel in zato porabim 5 minut. Ti boš rabil pa velikostni razred (ali več njih) več časa da boš nazaj usposobil. Vedno boš zadaj. Lahko tudi naredim tako, da se cel api naključno spreminja vsakih N ur.
Edini res dober način bi bil, da prepričaš trgovine, da same dajo podatke.



al pa neki na varianto, da trgovine (manjše itak, večje ne rabijo tega) dajo uporabniku, ki jo najde na listingu, nek popust (in hkrati kak % lastniku primerjalnika).

HotBurek ::

Ne gre za primerjalnik, ampak iskalnik.

"Najdi vse (spletne) trgovine, ki (v sloveniji) prodajajo ajvar."
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

xeon ::

Podobno temu? https://trgovine.net/

HotBurek ::

To je seznam, ki je uporaben za delat lastne sezname.

Kot iskalnik malo manj:

https://trgovine.net/iskanje.php?q=ajvar
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

pegasus ::

HotBurek je izjavil:

"Najdi vse (spletne) trgovine, ki (v sloveniji) prodajajo ajvar."
To izgleda kot malo bolj fancy google search query.

xeon ::

po čem se ta iskalnik razlikuje od ceneje.si: https://www.ceneje.si/Iskanje/Izdelki?q...?

Zgodovina sprememb…

  • spremenilo: xeon ()

HotBurek ::

ceneje.si prikaže 10 produktov iz iste trgovine (špar).

Ta iskalnik bo prikazal samo po en izdelek posamezne trgovine, v bolj "seznam" prikazu (view namesto grid).


Sej v osnovi sem se že odličil, da bom podatke začel zbirat po opciji 2. Zdej rabim izbrat še samo ime domene...
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

lufthammer ::

Pa si se že vprašal koga spljoh (za Boga milega) zanima, kdo vse prodaja ajvar? Vsaka bolje založena prehrambena trgovina...

Za tehnično robo ima še nek smisel, za prehrano pa bolj slabo. Ajvarja imaš vsaj deset različnih sort oz. proizvajalcev.

Blinder ::

RedDrake je izjavil:

Jaz lahko neko spletno trgovino predelam tako, da tvoj parser ne bo več prijel in zato porabim 5 minut. Ti boš rabil pa velikostni razred (ali več njih) več časa da boš nazaj usposobil. Vedno boš zadaj. Lahko tudi naredim tako, da se cel api naključno spreminja vsakih N ur.
Edini res dober način bi bil, da prepričaš trgovine, da same dajo podatke.


Lahko napišeš malo več o temu s tehnične plati?
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Ryzen 1700 gtx 970 Pismo smo stari v bozjo mater. Recesija generacija

tikitoki ::

RedDrake je izjavil:

Sizifovo delo.
Večini spletnih trgovin ni v interesu, da so primerjane.
Jaz lahko neko spletno trgovino predelam tako, da tvoj parser ne bo več prijel in zato porabim 5 minut. Ti boš rabil pa velikostni razred (ali več njih) več časa da boš nazaj usposobil. Vedno boš zadaj. Lahko tudi naredim tako, da se cel api naključno spreminja vsakih N ur.
Edini res dober način bi bil, da prepričaš trgovine, da same dajo podatke.


Sam bedakom ni v interesu, da se ne najdejo med rezultati tovrstnih iskalnikov. Ker vedno vec kupcev uporablja iskalnike in trgovine, ki niso prisotne zanje niti ne obstajajo.

RedDrake ::

Blinder je izjavil:


Lahko napišeš malo več o temu s tehnične plati?


CSS in JS generiraš on-the-fly iz template-a.
Output HTML-ja prilagodiš temu, kar si zgeneriral.
To pomeni, da se imena class-ov, ne standardnih attributov, funkcij, v končni fazi lahko tudi samih DOM elementov, če so classi dobro definirani spremenijo v nekaj naključnega.
Če torej pogledam, kako ima recimo mimovrste predstavljen artikel na njihovi spletni strani:
<div class="product-price" translations="[object Object]">
  <div class="product-price__wrap-old">
    <del class="product-price__price-old">
      329,99 EUR
    </del>
  </div>
  <div class="product-price__wrap" style="color: rgb(61, 73, 81);">
    <span class="product-price__price">
      279 EUR
    </span><!---->
  </div>
</div>

Bi jaz naredil, da bi se ob recimo naslednjem page loadu pojavilo tole (seveda z ustrezno spremenjenim css/js/...)
<hjuk class="iagoiaf" translations="[object Object]">
  <jjerqqqWw class="dfihefoioig">
    <mgqpo class="lpgahbqga">
      329,99 EUR
    </mgqpo>
  </jjerqqqWw>
  <aafIj class="jsegwnaqfa" style="color: rgb(61, 73, 81);">
    <kpbte class="xbvcafa">
      279 EUR
    </kpbte><!---->
  </aafIj>
</hjuk>

Da se odvrne tiste bolj "vztrajne", se potem lahko elemente še wrapa v poljubno slojev neuporabnih elementov.
"Parse this!", če parafriziram Trinity.

TLDR:
On-the-fly refactoring celotenga html/css/js stacka.
Če je potrebno, isto tudi na API nivoju.

Zgodovina sprememb…

  • spremenil: RedDrake ()

mr_chai ::

RedDrake je izjavil:

Sizifovo delo.
Večini spletnih trgovin ni v interesu, da so primerjane.
Jaz lahko neko spletno trgovino predelam tako, da tvoj parser ne bo več prijel in zato porabim 5 minut. Ti boš rabil pa velikostni razred (ali več njih) več časa da boš nazaj usposobil. Vedno boš zadaj. Lahko tudi naredim tako, da se cel api naključno spreminja vsakih N ur.
Edini res dober način bi bil, da prepričaš trgovine, da same dajo podatke.


Mnja...niti ne, če si malo bolj napreden pri skrejpanju podatkov.

https://www.diva-portal.org/smash/get/d...

Blinder ::

RedDrake je izjavil:

Blinder je izjavil:


Lahko napišeš malo več o temu s tehnične plati?


CSS in JS generiraš ....


zanimivo, hvala
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Ryzen 1700 gtx 970 Pismo smo stari v bozjo mater. Recesija generacija

RedDrake ::

Pa razne ML-je, ki bi se "učili" ali pa "ugibali" na osnovi podatkov html-ja (tekst, cena, ...) je tudi relativno trivialno porazit, pač dodaš fake tekst notri, ki je na kak hacky css način skrit za prikaz v browserju.
Tako bi scraper moral imeti tudi kompleten browser engine, in hkrati moral bi znati "brati" spletne strani.
Saj enkrat bomo tam, ampak trenutno še ne :)

Zgodovina sprememb…

  • spremenil: RedDrake ()

mr_chai ::

RedDrake je izjavil:

Pa razne ML-je, ki bi se "učili" ali pa "ugibali" na osnovi podatkov html-ja (tekst, cena, ...) je tudi relativno trivialno porazit, pač dodaš fake tekst notri, ki je na kak hacky css način skrit za prikaz v browserju.
Tako bi scraper moral imeti tudi kompleten browser engine, in hkrati moral bi znati "brati" spletne strani.
Saj enkrat bomo tam, ampak trenutno še ne :)


Nazadnje k sm jst screjpu sem tudi komplet browser engine uporablju zaradi javascripta in to ni res noben problem, ne razumem kaj je tle issue..

Ok, gremo dalje. Trdiš, da bi dal notri fake tekst, ki bi ga skril, kein problem za navdušene skrejperaše. Moj skrejper zna delat skreenšote tvoje strani in se iz njih veliko nauči, zna označit kje je ime izdelka, kje je cena in kje je slika, kje je opis izdelka. In vse to lahko potem izluščim iz samega htmlja, niti ne rabim delati OCR-ja. Simple..
In BTW, take zadeve so že leta v uporabi. To ni neka nova znanost. Vsi pametni skrejperaši tole delajo že dolgo.

Zgodovina sprememb…

  • spremenilo: mr_chai ()

RedDrake ::

Text se da zamenjati s svg-ji, z on-the-fly webgl renderjem, ipd ...
OCR je edini "ziher" način za scrape.
Dokler te potem nekdo ne load-limita.
Aja saj res, ziher imaš na tisoče IP-jev in ne bo problem scrapnit tistih nekaj 10.000 izdelkov neke trgovine kot mimovrste.

5erson ::

RedDrake je izjavil:


Bi jaz naredil, da bi se ob recimo naslednjem page loadu pojavilo tole (seveda z ustrezno spremenjenim css/js/...)


In potem boš to kmalu nehal delat zaradi Googla, če boš sploh imel šanso nazaj splezat.

RedDrake ::

5erson je izjavil:

RedDrake je izjavil:


Bi jaz naredil, da bi se ob recimo naslednjem page loadu pojavilo tole (seveda z ustrezno spremenjenim css/js/...)


In potem boš to kmalu nehal delat zaradi Googla, če boš sploh imel šanso nazaj splezat.

Googlu daš jasno normalno stran:
Seznam googlebot IP-jev


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Transparentna Slovenija #2: Razkriti tekači Istrskega maratona (strani: 1 2 )

Oddelek: Novice / Varnost
5212151 (7864) bbf
»

Spletna trgovina z enim izdelkom

Oddelek: Izdelava spletišč
4611930 (9587) Vice
»

Cena za spletno trgovino?

Oddelek: Izdelava spletišč
395126 (4177) HardFu
»

Zahtevnejše gostovanje, kje? (strani: 1 2 3 )

Oddelek: Pomoč in nasveti
1068001 (5085) Mati
»

Izdelava spletne trgovine 2

Oddelek: Izdelava spletišč
344081 (2079) IceIceBaby

Več podobnih tem