我正在使用此代码:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
backgroundWorker = sender as BackgroundWorker;
if (backgroundWorker != null)
{
while (!backgroundWorker.CancellationPending)
{
if (backgroundWorker.CancellationPending)
{
e.Cancel = true;
break;
}
if (newHtmls.Count == 1)
break;
HtmlAgilityPack.HtmlWeb hw = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load("https://www.test.com");
htmls = new List<string>();
foreach (HtmlAgilityPack.HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
string hrefValue = link.GetAttributeValue("href", string.Empty);
if (!newHtmls.Contains(hrefValue))
newHtmls.Add(hrefValue);
}
while (true)
{
if (backgroundWorker.CancellationPending)
{
e.Cancel = true;
break;
}
htmlloaded = true;
NavigateToLinks();
break;
}
}
}
}
现在它将添加任何链接。 我试图将IF更改为:
if (!newHtmls.Contains(hrefValue) && hrefValue.Contains("img"))
但这只会给我两个链接。 也许问题是它们中的大多数链接都超过两行?
但总的来说,我想得到的只是图片链接。 可能是包含img或image或jpg的链接.....可能更多的情况。
答案 0 :(得分:0)
编辑:修正转化问题
这样的事情
i++