WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Bygga spindel/crawler (https://www.wn.se/forum/showthread.php?t=18497)

Pettolajnen 2007-01-08 11:50

Jag har kommit på hur min spindel ska se ut nu och det går ut på att jämföra databasen med handlarens index-fil helatiden. Först kolla om det kommit nya annonser och sedan kolla om någon annons från databasen inte gäller längre. Såhär ser det ut med kod:
Kod:

<?
$query_handlare=mysql_query("SELECT * FROM handlare");
while ($r_handlare=mysql_fetch_array($query_handlare)) {

$filepath = $r_handlare['link'];
$contents = file($filepath);


        // Kollar om det kommit nya annonser
        foreach ($contents as $row) {
  list($datum, $bild, $rubrik, $beskrivning, $kategori, $lan, $typ, $pris, $lank) = explode("|", $row);
       
        $query_new=mysql_query("SELECT * FROM annonser WHERE h_id='".$r_handlare['id']."' AND h_lank='".$lank."'");
 if (mysql_num_rows($query_new) < 1) {
 mysql_query("INSERT INTO annonser () VALUES ()");
 }
       
       
       
        // Kollar om det försvunnit annonser
        $query_old=mysql_query("SELECT * FROM annonser WHERE h_id='".$r_handlare['id']."'");
        while ($old=mysql_fetch_array($query_old)) {
       
// PROBLEM: HÄR SKA DET KOLLAS OM DET FINNS NÅGON RAD DÄR $old['h_lank'] INTE FINNS MED, ISÅFALL SKA DEN RADERAS FRÅN DATABASEN
 foreach ($contents as $row) {
          list($datum, $bild, $rubrik, $beskrivning, $kategori, $lan, $typ, $pris, $lank) = explode("|", $row);
 }
       
        }

}
?>

MEN, ni ser mitt problem där vid rad 24 - 27. Hur gör man en count på hur många rader det finns där länken från databasen matchar en länk från någon rad i index-filen? Och om det är mindre än 1 så ska den raderas från databasen.

brokep 2007-01-08 12:43

Vet att detta är ett totalt okonstruktivt inlägg.. men det är ganska underhållande tråd det här.

Pettolajnen 2007-01-08 12:46

Ja de va faktiskt jävligt meningslöst inlägg, jag vill inte ens veta vad du tycker är underhållande med den, jag vill bara veta hur man kör en count() på foreach() efter hur många rader där $lank är samma som $old['h_lank'] från databasen.

Pettolajnen 2007-01-08 13:02

Förresten säg bara hur man gör för att kolla om t ex. "Hej" finns i en fil och i så fall skriva "Hej finns" annars "Hej finns inte".

freakalis 2007-01-08 13:22

Citat:

Originally posted by Pettolajnen@Jan 8 2007, 14:02
Förresten säg bara hur man gör för att kolla om t ex. "Hej" finns i en fil och i så fall skriva "Hej finns" annars "Hej finns inte".
http://se.php.net/manual/en/function.strpos.php

grazzy 2007-01-08 15:02

Rent programmeringstekniska detaljer tas med fördel upp på andra forum, typ phpportalen.net eller vart phpprogrammerare håller till nuförtiden.

Björn 2007-01-08 15:33

Citat:

Originally posted by Pettolajnen@Jan 7 2007, 20:56
Jo som sagt jag kan inte själv RSS så det är redan uteslutat. Och då vet jag som sagt att jag måste skapa en crawler. Kan man inte göra en själv då? Det borde väl inte vara allt för svårt eftersom alla index-filerna som den ska söka igenom ser likadana ut, en annons per rad i filen. Sedan är jag som sagt skeptisk till databas-användning eftersom det blir svårt att hantera t ex. när en annons tas bort från den ursprungliga sidan och när det kommer till annonser, eller när någon ändrar i sin annons. Det vore bättre att bara lista ut direkt från ursprungssidan.

Pengar har jag inga, men hoppas att få med min spindel/crawler :)

EDIT: Med ansluten handlare menar jag att jag har avtalat med handlaren t ex. Börjessons Båt att jag får ta information från deras hemsida. Och då ber jag dom fixa en såndär index-sida där annonserna radas ut en per rad. Än en gång, varken jag eller min målgrupp kan RSS så det är ingen idé att föreslå det ;)

"kan rss", det är ju bara en fil med text det med.. tror du missförstått användningsområdet lite, du kan ju lika gärna ta din info från en sådan korrekt formaterad fil som att skapa en egen standard, som dessutom kommer vara merjobb om det redan finns rss? Sen ang databasen... du lär väl behöva casha informationen på något vis, annars kommer det bli tungt om du får trafik på siten. Så att bara hämta rakt av är ingen bra ide tror jag.

iXam 2007-01-08 21:47

Citat:

Originally posted by Pettolajnen@Jan 8 2007, 14:02
Förresten säg bara hur man gör för att kolla om t ex. "Hej" finns i en fil och i så fall skriva "Hej finns" annars "Hej finns inte".
Med tanke på vad du vill göra och vad du verkar ha kunskaper att göra så tycker jag att du ska ta en sak i taget och börja med att lära dig dina verktyg, i detta fallet PHP.

Pettolajnen 2007-01-08 22:51

Men PHP kan jag någorlunda, det jag måste lära mig är ju tydligen RSS, nån som vet nån guide på svenska?

kers 2007-01-08 23:38

Pettolajnen: med all respekt så kan en bra start vara att förstå termerna du använder och sedan göra lite googling.

http://en.wikipedia.org/wiki/RSS_(file_format)
http://en.wikipedia.org/wiki/XML
http://en.wikipedia.org/wiki/Web_scraping

är en bra start.

Köp sedan en lämplig bok och besök diverse programmeringsrelaterad webbforum. Lycka till!


Alla tider är GMT +2. Klockan är nu 18:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson