我正在尝试这段代码:
private void htmlparsing(string htmlfile)
{
List<string> test = new List<string>();
HtmlDocument doc = new HtmlDocument();
doc.Load(htmlfile);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
test.Add(att.Value);
}
doc.Save(@"d:\file.htm");
}
这是我正在处理的html文件:https://skydrive.live.com/redir?resid=EB1C71C44C3976D5!318&authkey=!AKxxwSboig3BQpo
当我使用断点并在工作完成后在List测试中观看时,我看到了154个链接,但我没有看到例如html文件内容中的链接:
&#34; http://www.niederschlagsradar.de/images.aspx?jaar=-6&type=europa.cld&datum=201311151500&cultuur=en-GB&continent=europa&#34;&#34; http://www.niederschlagsradar.de/images.aspx?jaar=-6&type=europa.cld&datum=201311151800&cultuur=en-GB&continent=europa&#34;
有许多链接有61-62个链接,我在列表测试中看不到这个链接。
其次,这个链接介于:
之间var images = new Array(
最后
);
所以第一步我想从html文件中获取所有http链接。 其次我想过滤并获取html文件中所有的http链接:var images = new Array(和 );
答案 0 :(得分:0)
希望这对您有用。此代码仅适用于 var images = new Array()
中的链接 List<string> test = new List<string>();
string extractUrls = YourHtmlInText;
extractUrls = extractUrls.Remove(0, extractUrls.IndexOf("var images = new Array(") + " var images = new Array(".Length);
extractUrls = extractUrls.Substring(0, extractUrls.IndexOf(";")).Replace(")", "").Trim();
string[] urls = extractUrls.Split(',');
foreach (String url in urls)
{
test.Add(url.Trim().Replace("\"",""));
}