Есть сайт
rol-x.ru. Необходимо извлечь все внутренние ссылки внутри каталога "Объявления Житомир"
Теоретически, допустим берём 1-ю ссылку
https://rol-x.ru/categories.aspx?parent=1.
Программа извлечёт все ссылки имеющиеся на странице, и далее нужно чтобы программа искала все внутренние ссылки внутри каждой до этого извлечённой ссылки, и так пока не закончатся ссылки внутри каталога "Объявления Житомир". Т.е. последней извлечённой ссылкой будет
https://rol-x.ru/view_phone.aspx?phone=3207181.
Для начала использую HtmlAgilityPack для извлечения всех ссылок со страницы.
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
static string GetAbsoluteUrlString(string baseUrl, string url)
{
var uri = new Uri(url, UriKind.RelativeOrAbsolute);
if (!uri.IsAbsoluteUri)
uri = new Uri(new Uri(baseUrl), uri);
return uri.ToString();
}
public static List<string> ParseLinks(string urlToCrawl)
{
WebClient webClient = new WebClient();
byte[] data = webClient.DownloadData(urlToCrawl);
string download = Encoding.ASCII.GetString(data);
HashSet<string> list = new HashSet<string>();
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(download);
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (var n in nodes)
{
string href = n.Attributes["href"].Value;
list.Add(GetAbsoluteUrlString(urlToCrawl, href));
}
return list.ToList();
}
private void button1_Click(object sender, EventArgs e)
{
List<string> linksToVisit = ParseLinks("https://rol-x.ru/categories.aspx?parent=1");
using (var writer = new StreamWriter("C:/Reest.txt", append: true))
{
foreach (var line in linksToVisit)
{
writer.Write(line);
}
}
}
}
}
Но как реализовать извлечение ссылок из каждой найденной до этого ссылки?