Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как извлечь все ссылки сайта внутри каталога? Как извлечь все ссылки сайта внутри ката 
:(
    Опции темы
Samyrro054
  Дата 26.10.2019, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 26.10.2019

Репутация: нет
Всего: нет



Есть сайт 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);
                }
            }
        }
    }
}

Но как реализовать извлечение ссылок из каждой найденной до этого ссылки?
PM MAIL   Вверх
Google
  Дата 27.1.2020, 17:37 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.