Links suchen

VoodOsK

Mitglied
Guten Abend miteinander,

Ich bin nicht gerade der Chef, wenn's um C/C++ geht, behersche allerdings ein paar andere Programmiersprachen zumindest in ihren Grundlagen. Da ich allerdings vor habe, mich ein bisschen in C++ weiter zu bilden, bzw. mich selbst zu testen und trainieren, dachte ich mir, ich mache mal etwas halbwegs sinnvolles. Jetzt fehlt mir eigentlich nur noch ein klein wenig wissen zu C++, welches ich nicht mit Suchfunktionen anschaffen konnte.

Und zwar wäre das, wie ich auf eine Internettseite zugreifen kann, so dass ich sämtliche Links ausgeben kann, bzw sie in einem Array speichern kann.

Damit könnte ich zB alle Themen in einem Forum anzeigen, oder bei google (nach rausfiltern aller google internen Links) alle Ergebnisse anzeigen lassen(oder wenigstens die auf der ersten Seite).

Ach und wenn wir gerade dabei sind, was ist eigentlich der Einfachste Weg, ein File aus dem Internetz herunterzuladen? (Kann ich im Notfall röscherschieren [entweder ganz falsch oder gar nich falsch ;)], wenn ihr mit dem beantworten der anderen Frage ausgeschöpft seit :P)

Mfg VoodOsK
 
Ich selber fange erst an, mi C++ zu lernen. Mal sehen wie das klappt, ansonsten lern ich halt C# :D

Zu deinem Problem: Als Suchwort könntest du mal Sockets verwenden! Code, wie das in C++ geht kann ich dir nicht schreiben, aber eventuell die Suchfunktion und ganz bestimmt Google!
Auf dieser Seite: http://www.cplusplus.com/src/ findest du den "URL-Downloader", mitdem du genau das machen könntest, was du suchst. Halt nur nutzten, wenn du via suchen nach Sockets nicht weiterkommst :D

mfg
 
Na toll^^ als könnt ich mir Visual C++ leisten :P

Naja jedenfalls danke vielmals für die Hilfe :) Habe mitlerweilen sogar ein verfahren gefunden Links rauszufiltern :D

PHP:
#include <iostream>
#include <fstream>

using namespace std;

int linksuche(string text, int Textlange){
    string index[10000];
    int now, now2, counter = 1, i;
      for(now=2;now<Textlange;now++){
              if((text[now]=='h' && text[now+1]=='r' && text[now+2]=='e' && text[now+3]=='f'&& text[now+4]=='=') && !(text[now+17]=='g' && text[now+18]=='o' && text[now+19]=='o' && text[now+20]=='g'&& text[now+21]=='l')){
                                now2=now+6;
                   while(text[now2]!='"'){
                           index[counter]=index[counter]+text[now2];
                           now2++;
                           }
                           counter++;
                   }
              }
              cout<<"Alle Links wurden erfolgreich Herausgefiltert! ";
              system("Pause");
              for(i=1;i<=counter;i++){
                    cout<<endl<<index[i];
                    }
              return true;
      }


int main(int argc, char *argv[])
{
    char     filename[128], zeile[100000];
    ifstream file;
    string     index[1000], indexergebnisse[10000];

    // Dateinamen einlesen
    cout << "Dateinamen eingeben: " << flush;
    cin.getline(filename, 127);

    // Datei öffnen
    file.open(filename, ios::in);

    if (file.good())
    {
        file.seekg(0L, ios::beg);

        while (! file.eof())
        {
              cout<<"LESEN!";
            file.getline(zeile, 100000);
            index[1]=index[1]+zeile;
        }
        cout<<"Links werden gesucht...."<<endl;
        linksuche(index[1], index[1].length());
    }
    else
    {
        cout << "Datei nicht gefunden." << endl;
    }
    system("PAUSE");
    return 0;
}

Ok, ich gebs zu, der Code ist vollkommen unvolkommen, aber imemrhin, ER FUNKTIONIERT :D

Etliche vorschläge, zum verbessern werden daher herzlich angenommen ;)

MfG
 
Zurück