Парсер текста между тегами

443
08 августа 2017, 13:14

Необходимо на C# сделать парсер погоды, температуры воздуха. Нашел HtmlAgilityPack, но никак не могу въехать как пользоваться. Мне нужна инфа между тегами

<td class"bla ble">31</td> 

Помогите въехать или подскажите где посмотреть примеры, в google их много, но все какие то закрученные.

В возможном дубликате речь идет о парсинге атрибутов.

Answer 1

Можно использовать AngleSharp.

Ваш пример будет примерно такого вида:

var parser = new HtmlParser();
    var document = parser.Parse(@"<body>
<div class='product'>
    <a href='/url1.html'><img src='img1.jpg' alt=''></a>
    Hello, world
    <div class='comments-likes'>1</div>
    <table id='menutable'>
        <tr>
            <td>Head1</td>
            <td>Head2</td>
        </tr>
        <tr>
            <td class='bla ble'>31</td>
            <td>content</td>
        </tr>
        <tr>
            <td class='bla ble'>32</td>
            <td>content</td>
        </tr>
    </table>
</div>
<div class='footer'>
    <a href='http://www.ya.ru/q=asdf'>
</div>
</body>");
var cells = document.QuerySelectorAll("table#menutable td.bla.ble");
foreach (var cell in cells)
{
    Console.WriteLine(cell.Text());
}

Наиболее просто подключить AngleSharp при помощи механизма NuGet пакетов, встроенного в студию.

В окне Solution Explorer щелкните правой кнопкой мыши на нужном проекте и выберите пункт Manage NuGet Packages. Затем выполните поиск пакета AngleSharp (требуется подключение к интернету) и установите.

Механизм NuGet очень удобен, я рекомендую потратить некоторое время на его изучение.

Answer 2

Вот пример выборки значений из элементов <td></td> структуру HTML документа для парсинга взял здесь.

var doc = new HtmlDocument();
doc.Load(@"C:\myHtml.html");
var nodes = doc.DocumentNode
               .Descendants("table")
               .SelectMany(y => y.SelectNodes("//tr/td"))
               .Select(s => s.InnerText)
               .ToList();
READ ALSO
How change shape of textarea as on the attached image?

How change shape of textarea as on the attached image?

Who knows how I can make a layout, as shown in the picture, with auto resize textarea by height?

360
Неправильно работает console.log() в google chrome

Неправильно работает console.log() в google chrome

Простейший пример прикрепленВот результат его работы:

348
react не рендерит элемент в html

react не рендерит элемент в html

все постарался изложить в одном скриншоте: Ошибки в консоли нетjsx код:

380
SQLITE3 Select запросы

SQLITE3 Select запросы

Всем Привет

333