【发布时间】:2019-06-06 13:27:50
【问题描述】:
[开发人员您好,因为我长期以来一直在解决此类问题,但没有得到任何富有成果的结果,这导致我在 StackOverflow 上获得高级人员的帮助,因为我在 c# 控制台应用程序中使用 HtmlAgilityPack 进行网页抓取已附加图像,我想从开始解析 div,直到 h3 标记包含超链接,我该如何使用 HTML 敏捷包。
我尝试了多种解决方案进行解析,但没有取得丰硕的结果。
也附上图片1
代码在这里:
static string url = "https://www.rozee.pk/job/jsearch/q/all/fc/1184/fin/1/";
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc = web.Load(url);
var nodes = doc.DocumentNode.SelectSingleNode("//div[@class='job-listing opages npages']/div[@class='j-area']/div[@class='jlist float-left']/div[@class='job']/div[@class='jcont']/div[@class='jhead']/div[@class='jobt float-left']/h3[@title]/a[@href]").InnerText;
Console.WriteLine(nodes);`
它给了
空引用异常未处理。使用 new 关键字 create Object 的实例。
【问题讨论】:
-
如果我理解正确,您想要实现的是获取每个工作链接?如果是这样,这个 xpath 应该对
"//div[@id='app']/div/div[2]/div[2]/div[*]/div[1]/div[1]/div/h3/a"有帮助,然后如果你想解析 title 或其他人员,你可以使用ParentNode和其他属性上树。 -
为什么它在节点对象上给出异常任何建议将不胜感激
-
这 2 或 1 也指什么? @AntonKahwaji
-
2 和 1 是第二个和第一个(在此处获取第二个或第一个 div)。但这不是这里的问题,我认为加载的网站作业是使用客户端 javascript 请求完成的(我不确定正确的名称),这里的 HtmlWeb 不执行它们(因为它不是浏览器),也许 selenium 可能会有所帮助,但我不确定,也许可以尝试查看网站及其所做的请求,也许您可以找到源并直接获取它们。
标签: c# html-agility-pack