winsock source page web différente
Bonjour bonjour,
j'ai un code avec winsock pour obtenir le code source d'une page web :
Code:
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
string source = get_source(series[0].get_url());
int source_debut = source.find("<pre>",0);
int source_fin = source.find("</pre>",0);
int source_taille = source_fin - source_debut;
source = source.substr(source_debut, source_taille);
cout << source;
string get_source(string url)
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char buffer[1024];
string srequete = "GET " + url + " HTTP/1.0\nAccept: */*\n\n";
size_t requete_taille = srequete.size() + 1;
char crequete[requete_taille];
strncpy( crequete, srequete.c_str(), requete_taille );
int i = 0;
string source = "";
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("216.239.136.165"); // site web www.aol.com
sin.sin_family = AF_INET;
sin.sin_port = htons(80); // port HTTP.
connect(sock, (SOCKADDR *)&sin, sizeof(sin)); // on se connecte sur le site web.
send(sock, crequete, strlen(crequete), 0); // on envoie la requête HTTP.
do
{
i = recv(sock, buffer, sizeof(buffer), 0); // le buffer récupère les données reçues.
source += buffer;
} while (i != 0);
closesocket(sock); // on ferme le socket.
WSACleanup();
return source;
} |
et sur certaines pages web le code est légèrement différent.
Je ne pense pas que cela puisse etre du à un code coté serveur étant donné l'exemple suivant :
Je charge http://epguides.com/traveler/ et affiche la source à partir de <pre>, j'obtiens :
Code:
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
|
<pre>
Original
Episode # Prodf="http://us.imdb.com/title/tt805668/episodes">Show<br />Pages<br />@IMDb</a></td>
<td><a target="_blank" href="http://www.google.com/search?q=%22Traveler%22">Related links</a><br />via<br /><a target="_blank" href="http://www.google.com/">Google</a></td>
<td><a target="_blank" href="../search/">SEARCH<br />epguides<br />& TV.com</a></td>
<td><a href="../FAQ/">FAQ</a></td>
<td><a href="../menu/">All<br />Shows<br />Menu</a></td>
<td><a href="../menu/current.shtml"><strong>Current<br />Shows<br />Menu</strong></a></td>
<!--
<td><font size='-1'><a target="_blank" href="../search/">SEARCH<br />epguides<br />& TV.com</a></font></td>
<td><font size='-1'><a href="../FAQ/">FAQ</a></font></td>
<td><font size='-1'><a href="../menu/">All<br />Show☻ # Air Date Titles
_____ ______ ___________ ___________ ___________________________________________
Pilot
P- 1 100 10 May 07 <a target="_blank" href="http://www.tv.com/traveler/pilot/episode/738343/summary.html">Pilot</a>
Season 1
2. 1- 2 101 30 May 07 <a target="_blank" href="http://www.tv.com/traveler/the-retreat/episode/849925/summary.html">The Retreat</a>
3. 1- 3 102 6 Jun 07 <a target="_blank" href="http://www.tv.com/traveler/new-haven/episode/858658/summary.html">New Haven</a>
... |
ce qui est "faux" par rapport à firefox ou ie car si j'essaie d'ouvrir la source obtenue dans un navigateur, la plus part des choses sont invisible étant donné le <!-- 4 lignes avant le _______
tandis qu'avec d'autres pages cela fonctionne parfaitement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<pre>
Original
Episode # Prod # Air Date Titles
_____ ______ ___________ ___________ ___________________________________________
Season 1
1. 1- 1 1AFF79 6 Nov 01 <a target="_blank" href="http://www.tv.com/24/1200-a.m.-100-a.m./episode/85396/summary.html">12:00 A.M.-1:00 A.M.</a>
2. 1- 2 1AFF01 13 Nov 01 <a target="_blank" href="http://www.tv.com/24/100-a.m.-200-a.m./episode/85397/summary.html">1:00 A.M.-2:00 A.M.</a>
3. 1- 3 1AFF02 20 Nov 01 <a target="_blank" href="http://www.tv.com/24/200-a.m.-300-a.m./episode/85398/summary.html">2:00 A.M.-3:00 A.M.</a>
4. 1- 4 1AFF03 27 Nov 01 <a target="_blank" href="http://www.tv.com/24/300-a.m.-400-a.m./episode/85399/summary.html">3:00 A.M.-4:00 A.M.</a>
... |
Suis-je compréhensible ? quelqu'un a une idée d'ou peut venir mon problème ???
Merci d'avance pour votre aide !!!