Gå til innhold

Enkel PHP-bot som ikke gjør noe spesielt?


Anbefalte innlegg

Hei

 

Prøver å finne ut åssen jeg kan lage en slags bot, som ikke skal gjøre noe annet enn å følge linker den finner på en side som f. eks defineres utav GET (?side=http://www.sol.no) og så blar den gjennom alle linkene på sol.no

 

Er det noen som vet om noe? Vet noe lignende har blitt spurt om, men de botene skulle vel gjøre noe mer enn å bare bla gjennom linker

 

Takker for hjelp

Lenke til kommentar
Videoannonse
Annonse

Burde jo være rimelig enkelt det da, bare husk å sette set_time_limit til noe høyt eller 0, så ikke scriptet timer ut.

 

For å finne alle linker kan du vel f.eks. bruke regex for å finne alle anchor tags og hente ut href-attributet. (I teorien kunne du brukt xsl også, men med tanke på dagens gjennomsnittlige html-koding...)

Lenke til kommentar

<?php
time_limit(0);

$urler = array('http://www.sol.no');
while(count($urler) > 0)
{
  $html = file_get_contents(array_pop($urler));
  preg_match_all('<a.*?href="(.*?)".*?>', $html, $match);
  foreach($match as $url)
  {
		  array_push($urler, $url);
   }
}
?>

 

Der har du noe enkelt. Dette er nok ikkje akkurat det du ønsker å gjøre, men det bør sette deg på rett spor :)

 

Edit: Er

 tagen fjerna?
Endret av Runar0
Lenke til kommentar
Takk for svar, men problemet ligger i at jeg ikke har peiling på hvordan jeg skal gjøre dette.

Har søkt litt rundt på nettet, men finner ingenting om hvordan man lager en slags bot

<?php

set_time_limit( 0 ); 

$_GET['file'] = 'http://www.sol.no';

$file[] = file_get_contents( $_GET['file'] );

preg_match_all( '/\<a href="(http*.+?)"/i', $file[0], $matches );

print_r( $matches );

foreach( $matches[0] as $page )
{
	$file[] = file_get_contents( $page );
}

echo 'Fetched '.count( $file ).' pages from '.$_GET['file'];

?>

Veldig enkel, og kan allerede si at den bare henter ned ting med absolutt url (http*). Du burde antakelig skrive om hele saken til å bruke curl, men dette var bare for å vise.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...