如果有人可以提供帮助,我会很感激!我正在尝试解析Groupon网站http://www.groupon.com/browse/chicago?category=activities-and-nightlife
的以下页面 var webGet = new HtmlWeb();
var deal1 = webGet.Load("http://www.groupon.com/browse/chicago?category=activities-and-nightlife");
我希望获得每笔交易的整个块(即折扣优惠)
HtmlNodeCollection content_block = deal1.DocumentNode.SelectNodes("//div[@class = 'deal-list-tile grid_5_third']");
然后在每个区块中我想获得标题,公司名称,位置和价格。
foreach(HtmlNode node in content_block)
{
string title2 = node.SelectSingleNode("//div[@class = 'deal-title js-permalink']").InnerText;
string country2 = node.SelectSingleNode("//p[@class = 'merchant-name']").InnerText;
string location2 = node.SelectSingleNode("//p[@class = 'location']").InnerText;
string price2 = node.SelectSingleNode("//div[@class = 'price']/span").InnerText;
}
在这里我感到困惑,我需要将有关交易的所有信息写入
DbSet<Deal> Deals
,但即使我尝试将内容显示为ViewBag.Message = title + country + location + price;
,我也会收到System.NullReferenceException:对象引用未设置为content_block
行中对象的实例。
我做错了什么=( 提前谢谢!
答案 0 :(得分:0)
问题似乎是当没有找到节点而不是空集合时,selectnodes不返回null或null。所以这意味着你应该将if (content_block != null) {
包裹在上面的代码块周围。