Выдергивание ссылок из html без регулярок - C#

  1. Где то видел вытаскивание ссылок <a href="www.sdfsdf.ru">без регулярок, что то типа


textual

Код:

using System;
using System.Net;
using System.IO;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using HtmlAgilityPack;
 
class Program
{
    public static void Main(string[] args)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.cyberforum.ru/");
        string response = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.GetEncoding(1251)).ReadToEnd();
        HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
        document.LoadHtml(response);
        if (document.DocumentNode != null)
        {
            IEnumerable<HtmlNode> links = document.DocumentNode.SelectNodes("//a");
            foreach(HtmlNode node in links)
                Console.WriteLine(node.Attributes["href"].Value);
        }
        Console.WriteLine("done...");
        Console.ReadKey(true);
    }
}


Похожие ответы
  1. Здравствуйте! Допустим, есть 2 массива:

  1. Всем привет! Начал изучать C# по книжке C# in a nutshell, возникло несколько вопросов относительно ссылочных типов. Есть класс Панда

  1. Здравствуйте, есть вопрос по теме парсинга в webbrowser. есть следующий html кодHTML51 2 3 4 5 link1 link2 link3 ........................................................................ link100нужно как-то вытащить все теги "a" с атрибутом "ajaxh", после чего из всех тегов взять ссылку и название ссылки. пробовал так:

  1. Помогите пожалуйста разобраться новичку. Читаю шилдта, никак не могу въехать.... С применением Ref & out для переменных типа значений все предельно ясно. А вот при для объектов не могу понять... Как вижу все это я: Типы значений: при передаче методу параметр получает копию значения аргумента. Соответственно, любые изменения в методе приводят к изменению копии аргумента, а значит, сам аргумент не изменяется. Все это исправляется при использования ref&out. Ссылочный тип: при передаче методу параметр получает копию ссылки на объект. Т.е. сама ссылка передается по значению. Получается, наш объект теперь имеет "псевдонимы", и его можно изменять из метода. Но что происходит при использовании ref с объектом??? Шилдт приводит пример с методом Swap, в котором изменяются ссылки на объекты.... (с 228) Кто бы мне объяснил весь процесс по пунктам... а то никак не могу понять, что вообще там происходит. Фраза: если модификаторы ref или out указывают на ссылку, то сама ссылка передается по ссылке - убила наповал))) Спасибо заранее

  1. Подскажите пожалуйста как вытащить только ссылку.HTML51 Кинотеатр Спутник

  1. H E l P my!""! Не удалось найти имя типа или пространства имен "student" (пропущена директива using или ссылка на сборку?) Вопрос, какой компонент мне загружать из ссылок компонентов что бы я смог пользоваться student?

  1. необходимо найти ссылки на .css файлы и заменить их ТОЛЬКО на название самого файла. например: было dsfs/hfhf/12w.css - стало только 12w.css ссылки находим (Regex.Matches), обрабатываем в цикле (foreach (Match m in matches)), название файла узнаём. как сделать, чтобы именно для этой ссылки, именно её название? Regex.Replace пробовал, и в цикл foreach ставил (меняет только для последней ссылки. если их на странице 5, то первых 4 без изменений) и из цикла выносил (меняет все ссылки, но на последнее имя. изменены 5 ссылок, но все с одинаковым именем, как у 5). думал как-то через List, но фантазия закончилась.

  1. Подскажите, возможно ли извлечь все ссылки содержащиеся в строке и запихнуть их в какой-нибудь массив, по идее задача должна быть решаемой, но я ничего толком не нашел. Ссылки могут быть обрамлены html тегами а могут и нет. В идеале конечно хотелось создать какой-нибудь метод, принимающий строку и возвращающий массив ссылок, но мозгов не хватает. Может у кого-то уже есть подобное? Думаю будет многим полезно.

  1. Здравствуйте. Помогите разобраться с проблемой. При сравнении выдает ошибку: Возможно, непреднамеренное сравнение ссылок; для получения сравнения значений приведите левую часть к типу "string". Надеюсь на вашу помощь.

  1. Пытаюсь найти работу программистом C# ... и прочее рядом. Пока нет успеха. Решил сдать экзамен 70-483, чтобы вписать его номер в резюме(может поможет? ). Нашёл книгу в pdf формате. Она на английском. Читать могу, но всё же не всё схватываю точно. Приходится переводить некоторые слова. И они с первого раза не запоминаются. Встречаются в тексте дальше. И опять их искать. Для этого решил в этой книге отметить все слова что перевожу в Автоматическом режиме. Чтобы это слово по всей книге было отмечено ссылкой на внешний файл. Нажал на него и открываешь заготовленный перевод, или произношение его. Или ссылку в www. написал программку. Не совершенство. Но это единственное что есть.https://cloud.mail.ru/public/cb18886...2FHTML_DOC.rarhttps://cloud.mail.ru/public/cb18886...2FHTML_DOC.rar это ссылка на весь каталог. Как есть. объяснения как пользоваться: Это старт программы. Здесь вводятся ссылки на pdf файл и 2 ссылки на ЛОКАЛЬНЫЕ файлы компьютера. в моём примере это перевод слова "await" и ссылка для примера на mp3 файл, как будто это его произношение. После переходите на второй экран и там выбирается стартовая(24) страница и стоповая(26 в примере. 25 это уже после срабатывания). По умолчанию до конца файла. radioBatton по умолчанию стоит на "File". Жмёте кнопку "Find + Link". На этом этапе происходит поиск слова (в примере await) и вставка бланков памяти в файл, для дальнейшего редактирования. Можно увидеть после сохранения их в таком виде: Но они НЕ РАБОЧИЕ. Это просто резервирование пространства в файле для правильного БИНАРНОГО редактирования. Это так как выглядит файл после прохождения по нему и бронирования пространства для переделывания. Жмёте следующую кнопку "Underline". Она открывает тот самый НЕ рабочий файл и переделывает Внешний вид ссылок с "квадратных" в "подчёркнутый" вид. И так же заменяет болванки в файле <><><><><><> То есть видно что спецификация PDF изменяется с: /Type/Filespec/UF на /S/URI/URI Так же можете в ЭТОМ случае давать ссылки на WWW. <><> будут открываться эти ссылки. Это есть в примерах в архиве, в ссылке вверху. Там же лежит весь проект в исходном виде. Если разархивировать весь архив как есть. То можно сразу пойти в каталог: HTML_DOC\Program\CS\Exam70-483 и тут попробовать с примерами: File URI WWW там же и оригинал, без переделок. Программировал и пользовался такими функциями в C#: InvokeMember("getPageNumWords" для выборки всех слов на странице InvokeMember("getPageNthWord" охватывающий слово("await") прямоугольник InvokeMember("addLink" добавление Link используя движок Adobe InvokeMember("setAction" резервирование памяти в файле для переделывания. BinaryReader binaryReader + BinaryWriter bw для редактирования файла в БИНАРНОМ режиме. В текстовом НЕЛЬЗЯ этого делать. В Reference добавлял ссылку на Adobe Пробовал запускать на Android. С полным копированием путей. Но не удачно. Запускал под: Adobe Acrobat - работают только ссылки WWW EBookDroid - тоже работают ссылки на WWW. либо там не сходятся пути. Буду пробовать сделать их полностью Абсолютными. Но нет веры в успех. Почему WWW ссылки срабатывают, на локальную файловую систему нет? Всего хорошего. Кто будет пробовать? программный код не Совершенен. Я просто шёл к цели для получения результата в 2-ух видах File + URI. Работает. Можно и посовершенствовать. Хотелось чтобы работало под Android. Это так удобно всё иметь на нём. Со всеми ссылками и архивами. Вся библиотека в кармане. А дома на стационарном компьютере переделывать/готовить, потом перезаливать.