Bonjour à tous,

J'ai une colle à soumettre à votre expertise !!

Voila. Si vous cliquez sur ce lien, votre navigateur préféré vous affiche la recherche dont je souhaite récupérer le code source dans un fichier.txt.

Maintenant, lorsque l'url de cette recherche est incluse dans la macro ci-dessous, le code source que je récupère ne correspond en rien à la page que vous venez d'afficher dans votre navigateur ! J'obtiens le code source de celle-ci...une recherche générique sur Paris

J'ai tout essayé : modification de l'Url, temporisation entre les différentes étapes, tentative (peut-être pas très heureuse) de jouer avec les constantes de internetopenurl etc..., danser tout nu devant l'ordi...rien n'y fait.

Est-ce une protection sur le site, une redirection...? En tous les cas si quelqu'un à un éclaire de génie...je suis preneur !!!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Declare Function OuvreInternet Lib "wininet" _
     Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, _
     ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function fermeInternet Lib "wininet" _
     Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer
Private Declare Function code_page Lib "wininet" _
     Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As String, _
     ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function Ouvrepage Lib "wininet" _
     Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, _
     ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, _
     ByVal dwContext As Long) As Long
 
Sub lit_code_page_Web()
Dim texte_code As String * 1024
 
page_Web_à_lire = "http://www.trivago.fr/?sQuery={toDealsOnly=false&bDispMoreFilter=false&iSlideOutItem=99875&aDateRange%5Barr%5D=2015-03-15&aDateRange%5Bdep%5D=2015-03-16&aCategoryRange=0%2C1%2C2%2C3%2C4%2C5&iRoomType=7&sOrderBy=distance%20asc&aPartner=&aOverallLiking=1%2C2%2C3%2C4%2C5&iGeoDistanceLimit=500&iOffset=0&iLimit=25&iIncludeAll=0&bTopDealsOnly=false&iViewType=0&aPriceRange%5Bfrom%5D=0&aPriceRange%5Bto%5D=0&iGeoDistanceItem=99875&bIsSeoPage=false&mgo=false&bHotelTestContext=false&th=false&aHotelTestClassifier=&bSharedRooms=false&bIsTotalPrice=false&bIsSitemap=false&rp=&sSemKeywordInfo=&ww=false&}&cip=123050002010101"
internet = OuvreInternet("toto", 0, vbNullString, vbNullString, 0) 'ouvre Internet
URL = Ouvrepage(internet, page_Web_à_lire, vbNullString, _
    0, &H400000 Or &H4000000 Or &H80000000, 0) 'ouvre la page Web
'lecture du code de la page par paquet de 1024 caractères
 
txt = ""
nb_caractères_lus = 1
Do While nb_caractères_lus > 0
'lit 1024 caractères et les copie dans texte_code
code_page URL, texte_code, 1024, nb_caractères_lus
txt = txt & Left(texte_code, nb_caractères_lus)
Loop 'fait entrer le code source de la page recherchée dans
 
Open "C:\toto.txt" For Output As #1
Write #1, txt
Close #1
 
End sub

Merci d'avance pour votre précieuse aide.
Bien à vous