I am making a project in C# that's basically an image screen scraper for an image-search related game. I'm trying to use HTMLAgilityPack to select all the image elements and put them in an HTMLNodeCollection, like this:
//set up for checking autos
HtmlNodeCollection imgs = new HtmlNodeCollection(doc.DocumentNode.ParentNode);
imgs = doc.DocumentNode.SelectNodes("//img");
foreach (HtmlNode img in imgs)
{
HtmlAttribute src = img.Attributes["@src"];
urls.Add(src.Value);
}
Note that urls is a public List collection:
public List<string> urls = new List<string>();
My foreach loop is throwing an exception:
Object reference not set to an instance of an object.
Checking the autos, sure enough, imgs is null. Is there any better way I can track down the source of this problem? I have no idea if it's my Xpath or what.
The most frustrating part is that I had already gotten it to work, but messed up my file versions and lost my work. Derp.
You might have a typo in the following line:
HtmlAttribute src = img.Attributes["@src"];
I got this to work for me (notice the @ position):
HtmlAttribute src = img.Attributes[@"src"];