2
Reply

Webscraping with C#

Riven Joy

Riven Joy

Nov 5 2016 6:48 PM
227
My code fails at printing and throws out a NullReferenceException was unhandled at this line while scraping from the table at http://signalspremium.com/trading-resources-information-center/?tmpl=component. Please note at this point I am not logging in to the website.I just need to get the data as is.
      
      
 foreach (var row in Table.SelectNodes("tbody/tr"))

My Code is
        
  1. using System.Text;  
  2. using System.Threading.Tasks;  
  3. using ScrapySharp.Network;  
  4. using HtmlAgilityPack;  
  5. using ScrapySharp.Extensions;  
  6.   
  7. namespace Scrapping  
  8.  {  
  9.    class Program  
  10.    {  
  11.     static void Main(string[] args)  
  12.     {  
  13.         ScrapingBrowser Browser = new ScrapingBrowser();  
  14.         Browser.AllowAutoRedirect = true// Browser has settings you can access in setup  
  15.         Browser.AllowMetaRedirect = true;  
  16.   
  17.         WebPage PageResult = Browser.NavigateToPage(new Uri("http://signalspremium.com/trading-resources-information-center/?tmpl=component"));  
  18.         HtmlNode TableNode = PageResult.Html.CssSelect(".stable").First();  
  19.   
  20.   
  21.         var Table = PageResult.Html.CssSelect(".stable").First();  
  22.   
  23.         List<string> Names = new List<string>();  
  24.         foreach (var row in Table.SelectNodes("tbody/tr"))  
  25.         {  
  26.             foreach (var cell in row.SelectNodes("th"))  
  27.             {  
  28.                 Names.Add(cell.InnerText);  
  29.                 Console.WriteLine(Names);  
  30.                 Console.ReadLine();  
  31.                 }  
  32.             }  
  33.   
  34.   
  35.         }  
  36.     }  
  37. }  
 HTML content  I am tryint to retrive so i can store in a db table
 
     
          
  1. <table class="stable" style="width:100%;"><tbody><tr><th style="background: #444444;color: white;color: #EE9900;font-family: sans-serif;font-size: 1em; padding: 10px;">NAME</th>  
  2.       <th style="background: #444444;color: white;color: #EE9900;font-family: sans-serif;font-size: 1em; padding: 10px;">RATE</th>  
  3.       <th style="text-align:center;background: #444444;color: white;color: #EE9900;font-family: sans-serif;font-size: 1em; padding: 10px;">DATE</th>  
  4.       <th style="text-align:center;background: #444444;color: white;color: #EE9900;font-family: sans-serif;font-size: 1em; padding: 10px;">TIME</th>  
  5.       <th style="text-align:center;background: #444444;color: white;color: #EE9900;font-family: sans-serif;font-size: 1em; padding: 10px;">DIRECTION</th>  
  6.       <th style="text-align:center;background: #444444;color: white;color: #EE9900;font-family: sans-serif;font-size: 1em; padding: 10px;">EXPIRY</th></tr><tr style="background:#ececec;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">EUR/USD</td><td style="padding: 10px;">1.11500</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 23:00 GMT</td></tr><tr style="background:#fff;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">GBP/USD</td><td style="padding: 10px;">1.25180</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 20:00 GMT</td></tr><tr style="background:#ececec;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">USD/JPY</td><td style="padding: 10px;">103.08900</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 23:00 GMT</td></tr><tr style="background:#fff;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">EUR/GBP</td><td style="padding: 10px;">0.89060</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 21:00 GMT</td></tr><tr style="background:#ececec;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">AUD/USD</td><td style="padding: 10px;">0.76800</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 23:30 GMT</td></tr><tr style="background:#fff;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">USD/CHF</td><td style="padding: 10px;">0.96700</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 21:00 GMT</td></tr><tr style="background:#ececec;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">GOLD</td><td style="padding: 10px;">1,304.10</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 20:00 GMT</td></tr><tr style="background:#fff;color:#8e44ad;font-weight:bold;"><td style="padding: 10px;">SILVER</td><td style="padding: 10px;">18.41</td><td style="text-align:center;padding: 10px;">05/11/2016</td><td style="text-align:center;padding: 10px;">12:30 GMT</td><td style="text-align:center;"><br><a href="http://signalspremium.com/login">LOG IN TO SEE THE SIGNALS<p></p></a></td><td style="text-align:center;"> 20:00 GMT</td></tr></tbody></table>  

Answers (2)