KIELI: PHP
************
Teen kotisivuilleni hakukonetta, mutta nyt ilmeni taas ongelma. Kysyisinkin, että miten saa tehtyä semmoisen "hakubotin".
HAKUBOTIN TOIMINTA:
Hakubotti on asetettu aloittamaan 'retkensä' osoitteesta http://www.linkkeja.com/ -:sta. Hakubotti tallentaa kyseisen sivun hakutuloksiin. Tämän jälkeen hakubotti etsii linkkejä juuri tallentamastaan sivusta. Kun linkkejä löytyy, hakubotti siirtyy linkistä eteenpäin. Ja taas sama: Hakubotti tallentaa kyseisen sivun hakutuloksiin. Tämän jälkeen hakubotti etsii linkkejä juuri tallentamastaan sivusta. Kun linkkejä löytyy, hakubotti siirtyy linkistä eteenpäin. Ja taas sama:.....
SIIS:
Millä PHP-koodilla tuo "hakubotti" toteutetaan?
Koodaamalla. Mikä nyt tarkemmin on ongelmana? Tosta saa sellaisen käsityksen, ettet osaa mitään osaa itse tehdä.
Tuossahan sen omassa viestissäsi kerrot. :)
Muista sitten noudattaa robottiestostandardia.
Ongelmana on siis se, että miten tuollainen koodataan. Millä PHP-skriptillä? Olen jo kaikkea yrittänyt, mutta ei....
Huom! olen vasta aloittelija.
1. Otetaan nettiosoite. Parsitaan siitä tietoon protokolla, palvelimen osoite, käytettävä portti ja haettava tiedosto- tai hakemistopolku.
2. Otetaan yhteys palvelimeen käyttäen oikeaa porttia ja protokollaa.
3. Lähetetään palvelimelle protokollanmukainen tiedostopyyntö.
4. Otetaan palvelimen vastaus vastaan: jos pyyntö onnistuu, parsitaan vastauksesta kaikki nettiosoitteet, jos ei, unohdetaan homma haettavan osoitteen kohdalta.
5. Suljetaan yhteys ja käydään kaikki saadut osoitteet samalla tavalla läpi.
Funktio fsockopen saattaa auttaa.
Miten sellainen sitten onnistuu?? Millä koodilla onnistuu sen tallentaminen? Millä koodilla puolestaan linkistä eteenpäin-siirto? Mä oon meinaan nyt ihan pihalla.
Kysymyksistä päätellen sun kannattaisi ehkä kokeilla jotain pienempää aluksi. (no kerrotaan ny, että sivun voi hakea esim. file_get_contentsilla jos allow_url_fopen on päällä, muutoin soketeilla (esim fsockopen() ym), ja linkistä eteenpäin siirrytään etsimällä linkki sivun sisällöstä ja hakemalla sen mukaan uusi sivu)
Jos tämä hakukone oli tulossa tuonne MBnetin sivutilaasi, niin allow_url_fopen ei muistaakseni ole päällä (safe mode).
Webin indeksointi vaatii myös kovalevytilaa niin paljon, ettei sitä ole missään ilmaisessa eikä maksullisessakaan sivutilassa tarpeeksi. Ineksien muodostaminen vaatii myös konetehoa, jota noissa jaetuissa palvelimissa ei ole niin hirveästi käytettävissä. PHP ja tekstitiedostotietokanta -tyyppinen systeemi on myös hidas vähänkään suuremmilla tietomäärillä.
Lyhyesti: Pienennä mittakaavaa (esim. pelkästään oman saitin kattava hakukone) tai unohda koko juttu.
Tai mikäli haluat koko webin kattavan hakukoneen, niin googlen saa kai avuksi jotenkin, onhan useilla nettisivuilla niitä "Search powered by Google" lootia.
Vähän yksinkertaisemmin:
Mikä koodi hakee valittujen sivujen sourcesta META-tagin (esim. descreption), tämän jälkeen tarkistaa sivun titlen, ja sitten vielä tsekkaa sivun osoitteen. Ja tämän jälkeen avaa tekstitiedoston, ja tallentaa hakemansa tiedot sinne seuraavaan tyyliin:
-- title:descreption:url --?
Kentti kirjoitti:
Tai mikäli haluat koko webin kattavan hakukoneen, niin googlen saa kai avuksi jotenkin, onhan useilla nettisivuilla niitä "Search powered by Google" lootia.
Eihän se silloin oma ole, vaan pelkkä lomake googlen koneeseen.
* snaps *
> Sooda
Ei se todellakaan oma ole, mutta tuskin on omalle, pienelle sivulle järkeä yrittää laittaa koko netin kattavaa hakukonetta.
tkarkkainen kirjoitti:
Webin indeksointi vaatii myös kovalevytilaa niin paljon, ettei sitä ole missään ilmaisessa eikä maksullisessakaan sivutilassa tarpeeksi. Ineksien muodostaminen vaatii myös konetehoa, jota noissa jaetuissa palvelimissa ei ole niin hirveästi käytettävissä. PHP ja tekstitiedostotietokanta -tyyppinen systeemi on myös hidas vähänkään suuremmilla tietomäärillä.
Kentti kirjoitti:
> Sooda
Ei se todellakaan oma ole, mutta tuskin on omalle, pienelle sivulle järkeä yrittää laittaa koko netin kattavaa hakukonetta.
No eipä tietenkään, mutta oletin, että tässä tarkoituksena olisi tehdä robotti itse, eikä kekkasta jostain koko vepin laajuista mokomaa.
Itse se olisi tarkoitus tehdä.
Nyt ilmeni muuten toinenkin ongelma. Miks se hakusanat.txt-tiedostossa määritelty osoite menee toisen osoitteen perään. Eli kun klikkaa vaikka linkkiä, jonka pitäisi viedä osoitteeseen www.osoite.com, osoiteriville tulee seuraavan tyylinen osoite:
-- http://www.nimi.domain/search.php?www.osoite.com --
Codeprofile kirjoitti:
Nyt ilmeni muuten toinenkin ongelma. Miks se hakusanat.txt-tiedostossa määritelty osoite menee toisen osoitteen perään. Eli kun klikkaa vaikka linkkiä, jonka pitäisi viedä osoitteeseen www.osoite.com, osoiteriville tulee seuraavan tyylinen osoite:
-- http://www.nimi.domain/search.php?www.osoite.com --
Jos linkki vie toiselle palvelimelle kuin sille, jolla tarkasteltava sivu on, pitää linkin osoitteen eteen lisätä käytettävä protokolla. Tässä tapauksessa se on ilmeisesti HTTP.
Alota nyt sieltä helloworld ohjelmasta ja siitä etenet sitten vieraskirjaan. Palaa tähän hommaan vuoden opiskelun jälkeen. Täällä ei valmista koodia kumminkaan sulle tyrkytetä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.