2014-09-25 34 views
-1
protected async override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 
     string htmlPage = ""; 
     using (var client = new HttpClient()) 
     { 
     //  htmlPage = await client.GetStringAsync("http://m.buses.co.uk/stop.aspx?stopid=6884"); 

    //htmlPage = await client.GetStringAsync("http://www.imdb.com/movies-in-theaters/"); 
    htmlPage = await client.GetStringAsync("http://m.buses.co.uk/destinations.aspx"); 

     } 

     HtmlDocument htmlDocument = new HtmlDocument(); 
     htmlDocument.LoadHtml(htmlPage); 

     List<Movie> movies = new List<Movie>(); 
     foreach (var div in htmlDocument.DocumentNode.SelectNodes("//div[starts-with(@class, 'menu')]")) 
     { 
      Movie newMovie = new Movie(); 
     // newMovie.Cover = div.SelectSingleNode(".//div[@class='image']//img").Attributes["src"].Value; 
     // newMovie.Title = div.SelectSingleNode(".//h4[@itemprop='name']").InnerText.Trim(); 
     // newMovie.Summary = div.SelectSingleNode(".//div[@class='outline']").InnerText.Trim(); 
      // newMovie.Summary = div.SelectSingleNode(".//div[@class='services']").InnerText.Trim(); 

      newMovie.Summary = div.SelectSingleNode(".//a[starts-with(@href, 'place.aspx')]").InnerText.Trim(); 
      movies.Add(newMovie); 
     } 
     lstMovies.ItemsSource = movies; 
    } 

我想獲得熱門目的地的名單,地點的名稱,下面是我感興趣的部分。我能夠與上面的代碼獲得第一名 - 美國運通體育場。但它不再顯示。解析HTML - 只顯示一個項目不在列表

 <div class="menu"> 
    <ul> 
     <li> 
      <a href="place.aspx?placeid=1154"> 
      Amex Stadium 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1136"> 
      Brighton Marina 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=907"> 
      Brighton Station 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=910"> 
      Brighton University Moulsecoomb 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=916"> 
      Churchill Square 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=918"> 
      Coldean 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=924"> 
      County Hospital 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=943"> 
      Eastbourne 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=957"> 
      George Street Hove 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=965"> 
      Hangleton 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=972"> 
      Hollingbury 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=993"> 
      Lewes 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=997"> 
      Longhill School 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1006"> 
      Mile Oak 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1011"> 
      Newhaven 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1134"> 
      North Street 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1020"> 
      Old Steine 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1026"> 
      Patcham 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1028"> 
      Peacehaven 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1035"> 
      Portslade Station 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1042"> 
      Queens Park 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1047"> 
      Rottingdean 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1057"> 
      Seaford 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1062"> 
      Shoreham 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1135"> 
      St Peter's Church 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1074"> 
      Steyning 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1076"> 
      Sussex University 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1080"> 
      Tunbridge Wells 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1082"> 
      Uckfield 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1091"> 
      Westdene 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1092"> 
      Whitehawk 
      </a> 
      </li> 

     <li> 
      <a href="place.aspx?placeid=1095"> 
      Woodingdean 
      </a> 
      </li> 
    </ul> 
    </div> 
+0

這將有助於您提供(一部分)您感興趣的網頁。並清楚說明您嘗試過,得到和預期的內容。 – venerik 2014-09-25 21:31:34

+0

對不起,現在就添加更多信息。 – 2014-09-25 21:57:34

+0

請注意,未經他們明確的書面同意,屏幕抓取IMDB不合法。從他們的[使用條件](http://www.imdb.com/help/show_article?conditions):*您不得在本網站上使用數據挖掘,機器人,屏幕抓取或類似的數據收集和提取工具,除我們的明確書面同意如下所述。* – 2014-09-25 22:08:20

回答

0

您的選擇是錯誤的。聲明

SelectNodes("//div[starts-with(@class, 'menu')]") 

只選擇<DIV class="menu">並且由於只有一個這樣的DIV你只能得到一個位置。你應該將其更改爲:

SelectNodes("//div[starts-with(@class, 'menu')]/ul/li") 

,然後使用:

newMovie.Summary = div.SelectSingleNode("a[starts-with(@href, 'place.aspx')]").InnerText.Trim(); 

通知,我從後者選擇刪除.//

相關問題