Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Hakubotti

Sivun loppuun

Codeprofile [08.12.2006 18:15:16]

#

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?

sooda [08.12.2006 18:17:23]

#

Koodaamalla. Mikä nyt tarkemmin on ongelmana? Tosta saa sellaisen käsityksen, ettet osaa mitään osaa itse tehdä.

Gwaur [08.12.2006 18:20:34]

#

Tuossahan sen omassa viestissäsi kerrot. :)

Muista sitten noudattaa robottiestostandardia.

Codeprofile [08.12.2006 18:21:01]

#

Ongelmana on siis se, että miten tuollainen koodataan. Millä PHP-skriptillä? Olen jo kaikkea yrittänyt, mutta ei....
Huom! olen vasta aloittelija.

Gwaur [08.12.2006 18:28:25]

#

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.

Codeprofile [08.12.2006 18:34:07]

#

Miten sellainen sitten onnistuu?? Millä koodilla onnistuu sen tallentaminen? Millä koodilla puolestaan linkistä eteenpäin-siirto? Mä oon meinaan nyt ihan pihalla.

sooda [08.12.2006 19:02:14]

#

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)

tkarkkainen [08.12.2006 19:12:55]

#

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.

Kentti [08.12.2006 19:32:27]

#

Tai mikäli haluat koko webin kattavan hakukoneen, niin googlen saa kai avuksi jotenkin, onhan useilla nettisivuilla niitä "Search powered by Google" lootia.

Codeprofile [08.12.2006 19:34:08]

#

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 --?

sooda [08.12.2006 19:34:27]

#

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.

ajv [08.12.2006 19:45:59]

#

* snaps *

Kentti [08.12.2006 20:11:34]

#

> 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ä.

sooda [08.12.2006 20:14:41]

#

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.

Codeprofile [08.12.2006 21:50:55]

#

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 --

Gwaur [09.12.2006 11:49:06]

#

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.

Matso [11.12.2006 18:54:52]

#

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ä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta