-1
我製作了這個抓取工具,我想知道爲什麼我的代碼轉到下一頁不起作用。這裏是代碼。爲什麼爬蟲不去下一頁?
var pessoaFinder = new ABCTelefonosPessoasLinkFinder();
var pessoaContent = new ABCTelefonosPessoasContentFinder();
var Urls = DadoPo.ListarUrls();
foreach (var url in Urls)
{
var tempPessoas = new List<string>();
tempPessoas.AddRange(pessoaFinder.Find(url));
foreach (var linkPessoa in tempPessoas)
{
var infoPessoa = new List<DadoTo>();
infoPessoa.AddRange(pessoaContent.Find(url + linkPessoa));
foreach (var pessoa in infoPessoa)
{
if (DadoPo.VerificaLink(url + linkPessoa))
{
continue;
}
DadoPo.Salvar(pessoa);
}
}
}
}
這個調用函數調用函數找到鏈接,並轉到下一頁。這裏是查找人員信息並進入下一頁(我認爲錯誤是)的功能。
public string[] Find(string url)
{
var webGet = new HtmlWeb();
var document = webGet.Load(url);
var nodes = document.DocumentNode.SelectNodes("//div[@id='mainContent']/div/a");
if (nodes == null)
{
return new string[0];
}
foreach (var node in nodes)
{
var href = node.GetAttributeValue("href", "");
cidades.Add(href);
}
var elUrlProximaPagina = document.DocumentNode.SelectSingleNode("//div[@id='mainContent']/div[@class='paginado']/div/*[contains(@class,'previous')]");
if (elUrlProximaPagina == null)
{
return cidades.ToArray();
}
var urlProximaPagina = elUrlProximaPagina.GetAttributeValue("href", "");
if (!String.IsNullOrEmpty(urlProximaPagina))
{
return Find(urlProximaPagina);
}
return cidades.ToArray();
}
}
請儘快回答。非常感謝你。
謝謝您的回覆和關注! – Bovo