Les Snippets

Connexion

Récupérer la source d'une page dans une variable String par API

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 09/06/2008 21:56:44 et initié par PCPT [Liste]
Date de mise à jour : 27/12/2009 19:03:21
Vue : 11249
Catégorie(s) : API, Fichier / Disque, Réseau & Internet, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- VB6, VBA
- Delphi 5
- VB 2005, VB 2008
- C# 2.x, C# 3.x



Langage : VB6 , VBA
Date ajout : 09/06/2008
Posté par PCPT [Liste]
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As StringAs Long
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As  Long
 
Function GetStringSourceFromOnlineFile(ByVal  sUrl As String) As String
'   récupère un nom de fichier temporaire
    Dim sTempDest As String
    sTempDest = GetUniqueTempFileName '  http://www.codyx.org/snippet_generer-nom-fichier-temporaire-unique_619.aspx#1876
'   télécharge la page
     If URLDownloadToFile(0&, sUrl, sTempDest, 0&, 0&) = 0  Then
'       on lit le  fichier
        Dim FF As Integer
        FF = FreeFile
        Open sTempDest For Input As #FF
            GetStringSourceFromOnlineFile = Input(LOF(FF), 1)
        Close #FF
'       supprime le fichier temp
        Call DeleteFile(sTempDest)
     End If
End Function

Remarque :
Label1.AutoSize = True
Label1.Caption = "Mon IP WAN : " & GetStringSourceFromOnlineFile("http://www.whatismyip.org")



nécessite ce snippet : http://www.codyx.org/snippet_generer-nom-fichier-temporaire-unique_619.aspx#1876
Langage : VB6 , VBA
Date ajout : 12/11/2008
Posté par Charles Racaud [Liste]
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As StringByVal lAccessType As LongByVal sProxyName As StringByVal sProxyBypass As StringByVal lFlags As LongAs Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As LongByVal sUrl As StringByVal sHeaders As StringByVal lLength As LongByVal lFlags As LongByVal lContext As LongAs Long
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As LongByVal sBuffer As StringByVal lNumBytesToRead As Long, lNumberOfBytesRead As LongAs Integer
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As LongAs Integer
Private Const INTERNET_OPEN_TYPE_PRECONFIG As Long = &H0
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000
Public Function DownloadSource(ByVal Url As StringByVal UserAgent As StringAs String
  Dim hOpen As Long
  Dim hOpenUrl As Long
  Dim sReadBuffer As String * 1024
  Dim lNumberOfBytesRead As Long
  Dim sBuffer As String
  hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  hOpenUrl = InternetOpenUrl(hOpen, Url, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
  Do
    sReadBuffer = vbNullString
    Call InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
    sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
    DoEvents
  Loop While lNumberOfBytesRead > 0
  If Not hOpenUrl = 0 Then Call InternetCloseHandle(hOpenUrl)
  If Not hOpen = 0 Then Call InternetCloseHandle(hOpen)
  DownloadSource = sBuffer
End Function
Remarque :
Méthode sans passer par un fichier temporaire
Langage : Delphi 5
Date ajout : 17/11/2008
Posté par cirec [Liste]

Uses WinINet; 
Function DownloadSourceAsString(Const Url: String): String;  
Var 
  hOpen : HINTERNET;  
  hOpenUrl : HINTERNET; 
  sReadBuffer : Array[0..1023] Of ansichar;  
  lNumberOfBytesRead : Cardinal; 
Begin  
  Result := ''; 
  { Démarre une session Internet } 
  hOpen :=  InternetOpen(PChar(Application.ExeName), INTERNET_OPEN_TYPE_PRECONFIG, '', '', 0); 
  If hOpen =  Nil  Then 
  Begin  
    ShowMessage(SysErrorMessage(GetLastError)); 
    exit;  
  End; 
  Try  
    { se connecte à l'URL }  
    hOpenUrl := InternetOpenUrl(hOpen, PChar(Url), '', 0, INTERNET_FLAG_RELOAD,  0); 
    Try 
      If  hOpenUrl <> Nil  Then 
      Begin  
        { récupère le texte }  
        Repeat 
          sReadBuffer  := ''; 
          InternetReadFile(hOpenUrl,  @sReadBuffer, Length(sReadBuffer), lNumberOfBytesRead); 
          Result :=  Result + String(sReadBuffer);  
        Until lNumberOfBytesRead = 0; 
      End 
      Else  
      Begin  
        ShowMessage(SysErrorMessage(GetLastError));  
        exit; 
      End; 
    Finally 
      If hOpenUrl <> Nil  Then 
        InternetCloseHandle(hOpenUrl);  
    End; 
  Finally 
    InternetCloseHandle(hOpen);  
  End; 
End; 
Procedure  Tfrm_Main.btn_GoClick(Sender: TObject); 
Begin 
  lbl_MyIP.Caption := Format('Mon IP : %s',[DownloadSourceAsString('http://www.whatismyip.org')]); 
  { Fonctionne aussi avec un fichier txt }  
  mmo_Result.Lines.Text := DownloadSourceAsString('http://skin-ogame.hebfree.org/World_Of_Stargate/texte_evolution.txt');  
End; 

Langage : VB 2005 , VB 2008
Date ajout : 03/04/2009
Posté par Charles Racaud [Liste]
DateMAJ : 27/12/2009
'Imports System
'Imports System.Net
Public Function DownloadSource(ByVal address As StringByVal UserAgent As StringAs String
  Dim Result As String
  Using NetC As New WebClient()
    NetC.Headers(HttpRequestHeader.UserAgent) = UserAgent
    Result = NetC.DownloadString(address)
  End Using
  Return Result
End Function
Public Function DownloadSource(ByVal address As Uri, ByVal UserAgent As StringAs String
  Return DownloadSource(address.ToString(), UserAgent)
End Function
Langage : C# 2.x , C# 3.x
Date ajout : 03/04/2009
Posté par Charles Racaud [Liste]
//using System;
//using System.Net;
public static string DownloadSource(string address) {
  string Result = string.Empty;
  using (WebClient NetC = new WebClient()) {
    Result = NetC.DownloadString(address);
  }
  return Result;
}
public static string DownloadSource(Uri address) {
  return DownloadSource(address);
}

Snippets en rapport avec : Chaine, Source, Télécharger, Page, Récupérer



Codes sources en rapport avec : Chaine, Source, Télécharger, Page, Récupérer

{ASP / ASP.NET} LIRE LA SOURCE D'UNE PAGE
Voila une fonction qui permet de lire le code source d'une page Internet...

{Visual Basic, VB6, VB.NET, VB 2005} CONCEPTMONITOR - UN EXTRACTEUR DE D'INFORMATIONS PROVENANT DE PAGES HTML
Cette source est un extracteur d'informations (crawler) ayant plusieurs buts. C'est en premier un cl...

{JAVA / J2EE} WEBSOURCEASPIRO - ASPIRATEUR DE CODE SOURCE DE PAGE INTERNET
C'est un petit programme simple. On rentre une URL, on appuie sur le bouton et ca charge la page dan...

{Visual Basic, VB6, VB.NET, VB 2005} AFFICHER LA SOURCE D'UNE PAGE INTERNET
Cette source permet d'afficher la source d'une page présente sur le net ou en local ... Si vous ...

{Visual Basic, VB6, VB.NET, VB 2005} AFFICHER LA SOURCE D'UNE PAGE HTML D'UN SITE
C'est très , mais alors très simple à comprendre. Il n'y a que 3 lignes à taper, donc vraiment pas b...

{C / C++ / C++.NET} PLANNING D'EQUIPE
Le sujet de ma source est de pouvoir consulter le planning d'une équipe composé de six personnes.En ...

{JAVA / J2EE} RECHERCHER DE FICHIERS AVEC UNE REGEX
Rechercher tout les fichiers avec un regex qui existes dans un dossier et les afficher sur une page ...

{PHP} PHPREPOGENERATOR + REPO (WIN)
J'ai souhaitais créer ma propre source Cydia pour stocker mes Packages (Tweaks et autre). J'ai en...

{PHP} ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET
Bonjour à tous ;) Ceci est une petite fonction servant à retourner l'adresse absolue de la page en ...

{JAVA / J2EE} STRING NUMBERS COMPUTATOR
Cette classe permet simplement d'appliquer une fonction (simple ou complexe : de int -> vers int) à ...