Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ist es möglich mit Hilfe von C++ auf den HTML-Code zuzugreifen, diesen nach bestimmten Kriterien zu durchsuchen und mit den gefunden Inhalten weiterzuarbeiten? Ich möchte ein Programm schreiben, das in der Lage ist von unterschiedlichen Seiten, die aber gleich aufgebaut sind, bestimmte Werte einzulesen und ins Programm zu übertragen (z.B. Aktienkurse o. ä.).

Ich hoffe es kann mir jemand bei diesem Problem weiterhelfen.

  • 5 Wochen später...
Geschrieben

Hallo,

Diese Methode lädt die angegebene Seite (sUrl) und speichert den HTML-Text auf die Festplatte mit Namen "provider_page.txt" Nun kannst du die Datei ganz normal untersuchen mit den String-Funktionen wie

GetLength()

Find()

Mid()

etc....

Viel Spaß & Ciao!





int CCallStockValue::ConnectAndReadPage(CString sUrl, CString &sPageText)

{

  CInternetSession netSession;

  CString sMessage;

  CStdioFile* pFile;

  CFile OutFile;

  int iStatus = -1;

  int iBytes; // Count of readed bytes

  char sBuffer[1024]; // Buffer 

  CCallStockValue c;  // GetApplicationDir()



  // Open the html site

  if (sUrl == "")

  {

    sMessage = sMessage + "URL is missing!   \n";

    AfxMessageBox(sMessage, MB_ICONINFORMATION);    

  }

  else

  {    

    pFile = netSession.OpenURL(sUrl);

    if (pFile == NULL)

    {

      // Connection is incorrect

      sMessage = sMessage + "\nConnection the data-provider\n\n" + sUrl + "\n\n" +

                            "was failed!\n\n";

      AfxMessageBox(sMessage, MB_ICONSTOP);

    }

    else

    {

      // Open/create local file on hdd at application directory

      // to store page


      OutFile.Open(c.GetApplicationDir() + "provider_page.txt", 

        CFile::modeCreate | 

        CFile::modeWrite);


      // Connection is ok, then read html and write to hdd

      while ((iBytes = pFile->Read(sBuffer, sizeof(sBuffer))) > 0)

      {

        sPageText += sBuffer;

        OutFile.Write(sBuffer, iBytes);         

      }


      // Close CStdioFile (pFile)

      delete pFile;

      // Close file (CFile)

      OutFile.Close();


      // Close net session 

      netSession.Close();


      // Status is OK

      iStatus = 1; // 

    }

  }


  return iStatus;

}

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...