2010-11-08 6 views
0

Je suis en train de télécharger une liste de titres de films, les dates et la durée de ce site http://www.fancast.com/movies Le code que j'ai est:Essayer de télécharger une liste de films

// used to build entire input 
     StringBuilder sb = new StringBuilder(); 

     // used on each read operation 
     byte[] buf = new byte[8192]; 

     // prepare the web page we will be asking for 
     HttpWebRequest request = (HttpWebRequest) 
      WebRequest.Create("http://www.fancast.com/movies"); 

     // execute the request 
     HttpWebResponse response = (HttpWebResponse) 
      request.GetResponse(); 

     // we will read data via the response stream 
     Stream resStream = response.GetResponseStream(); 

     string tempString = null; 
     int count = 0; 

     do 
     { 
      // fill the buffer with data 
      count = resStream.Read(buf, 0, buf.Length); 

      // make sure we read some data 
      if (count != 0) 
      { 
       // translate from bytes to ASCII text 
       tempString = Encoding.ASCII.GetString(buf, 0, count); 

       // continue building the string 
       sb.Append(tempString); 
      } 
     } 
     while (count > 0); // any more data to read? 

qui est emprunté à un exemple de code I trouvé sur le net. Cependant, quand je regarde ce qu'il a téléchargé, il ne contient pas l'information que je cherche. Il a la même information que le "View Source" du site a. Il semble qu'il fait un appel à un autre site qui a l'info mais je n'arrive pas à trouver ou à y accéder. Toute aide sur la façon d'obtenir une liste de titres de films, la longueur et/ou la date serait très appréciée. Merci!

+3

Non qu'il vous aide à votre question, mais vous pouvez remplacer tout ce code avec 'chaîne PageData = new WebClient() DownloadString (" http.. : //www.fancast.com/movies ");' –

+0

Mais quelle est votre vraie question? Voulez-vous extraire des données de la page téléchargée? Dans ce cas, faire à la vue source-trick et collez un morceau de données contenant les informations dont vous avez besoin et indiquez les parties que vous voulez en extraire. –

Répondre

1

Exactement, Si vous analysez le code source de cette page Web, vous verrez que les films sont chargés à partir d'une autre URL. Utilisez les outils de développement google chrome (ou tout autre outil comme "Fiddler2 que je recommande vraiment) pour suivre toutes les ressources téléchargées par le navigateur lors de l'affichage de la page web

Je l'ai fait, il semble que la base de données du film est saisie : http://www.fancast.com/movies_free_db.widget

Alors, changer le WebRequest pour pointer vers cette url

+0

Merci, cela a aidé une tonne! –

+0

Si c'était la réponse que vous regardiez, peut-être que vous devriez marquer ma réponse comme acceptée. –

+0

Fait :). J'ai joué avec des outils de développement google chrome et je suis toujours curieux de savoir comment vous avez découvert que l'information sur le titre du film était sur http://www.fancast.com/movies_free_db.widget. Aussi, savez-vous où je peux trouver la longueur du film et l'année de sortie? Désolé, je suis très nouveau à ce sujet et ai piqué autour du code source de la page Web à pas de chance :( –

0

Hmmm ... il y a une assez grande boîte de vers que vous avez ouverte là-bas. Votre commentaire que le résultat, "... contient les mêmes informations que View Source ...", me fait penser que vous ne comprenez pas complètement les détails de ce qui se passe.

Je recommande HTTP Programming Recipes for C#. C'est le livre que j'ai lu quand j'ai écrit pour la première fois une toile d'araignée, et je pense que cela vous donnera une bonne poussée dans la bonne direction.

Questions connexes