C #으로 프로젝트를 만들고 있는데, 기본적으로 이미지 검색 관련 게임의 이미지 스크레이퍼입니다. HTMLAgilityPack을 사용하여 모든 이미지 요소를 선택하고 다음과 같이 HTMLNodeCollection에 넣으려고합니다.
//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);
}
urls 는 public List 컬렉션입니다.
public List<string> urls = new List<string>();
내 foreach 루프가 예외를 throw하고 있습니다.
개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
자동차를 점검하는 것, 물론, imgs 는 null입니다. 이 문제의 원인을 추적 할 수있는 더 좋은 방법이 있습니까? 나는 그것이 내 Xpath인지 전혀 모릅니다.
가장 실망한 부분은 이미 작동하도록 설정했지만 파일 버전을 엉망으로 만들고 작업을 잃어 버렸습니다. Derp.
다음 행에 오타가있을 수 있습니다.
HtmlAttribute src = img.Attributes["@src"];
나는이 일을 나를 위해 일하게했다.
HtmlAttribute src = img.Attributes[@"src"];
이것은 나를 위해 작동합니다. 귀하의 문서가 올바르게로드되지 않은 것 같아요, 따라서 xpath 일치하는 반환합니다.
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml("<html><head></head><body><div><img /><div><img /><img/></div></div><img/></body></html>");
var nodes = htmlDocument.DocumentNode.SelectNodes("//img");
// 4 nodes found
foreach (var node in nodes)
{
// do stuff
}