由于系统的限制,我不允许使用htmlagilitypack,因为我没有权利引用该库。所以我只能使用原生的asp.net编程语言来解析页面。
e.g。我想废弃这个页面 https://sg.linkedin.com/job/google/jobs/ 来获取谷歌工作列表(只是一个例子,我并不打算获得这个列表,但我自己的公司),我看到他们在 我如何才能添加这些职位说明和名称。
我目前的代码是
System.Net.WebClient client = new System.Net.WebClient();
try{
System.IO.Stream myStream = client.OpenRead("https://sg.linkedin.com/job/google/jobs/");
System.IO.StreamReader sr = new System.IO.StreamReader(myStream);
string htmlContent = sr.ReadToEnd();
//do not know how to carry on
}catch(Exception e){
Response.Write(e.Message);
}
我怎么能继续?
答案 0 :(得分:0)
您可以获取该页面并使用正则表达式来隔离有用的部分。如果你真的很幸运,你可能有一个有效的XML文件:
var html = new WebClient().DownloadString("https://sg.linkedin.com/job/google/jobs/");
var jobs = new XmlDocument();
jobs.LoadXml(Regex.Replace(Regex.Match(html,
@"<ul class=""jobs"">[\s\S]*?</ul>").Value,
@"itemscope | itemprop="".*?""", "")); // clean invalid attributes
foreach (XmlElement job in jobs.SelectNodes("//li[@class='job']"))
{
Console.WriteLine(job.SelectSingleNode(".//a[@class='company']").InnerText);
Console.WriteLine(job.SelectSingleNode(".//h2/a").InnerText);
Console.WriteLine(job.SelectSingleNode(".//p[@class='abstract']").InnerText);
Console.WriteLine();
}