Нужна консультация: просмотр веб-страницы с помощью .NET - PullRequest
2 голосов
/ 16 июня 2009

Мне нужен совет для проекта, который я собираюсь начать.

В двух словах, мое приложение должно перейти на определенный футбольный веб-сайт, загрузить HTML и извлечь необходимые данные.

Это то, что я сделал до сих пор:

:: 1) Перейти на определенный футбольный веб-сайт (например, http://www.livescore.com/default.dll?page=england) и загрузить HTML-код с помощью WebClient.

:: 2) С помощью SgmlReader преобразовать HTML в XML

:: 3) Используя XmlDocument, получить данные, которые я ищу. Обычно это включает в себя:

::::::: 3.1) Получение узлов с помощью GetElementsByTagName () (например, GetElementsByTagName ("tr"))

::::::: 3.2) Цикл по списку узлов, возвращаемых методом GetElementsByTagName ()

Есть ли лучший способ сделать то, что я пытаюсь сделать?

Я думал о LINQ to XML. Как вы думаете, это улучшит производительность?

Буду признателен за любые предложения или комментарии!

Ответы [ 3 ]

5 голосов
/ 16 июня 2009

Просто используйте HTML Agility Pack! http://www.codeplex.com/htmlagilitypack

Таким образом, вы можете запросить документ, используя XPath, чтобы получить нужные вам узлы. Вы даже можете использовать плагин Firebx Firebug, чтобы помочь вам построить XPath-запросы

0 голосов
/ 16 июня 2009

После того, как вы преобразовали данные в XML, вы можете использовать XSLT , чтобы преобразовать его в более простой набор XML и тот, который больше подходит для ваших целей. Оттуда вы можете использовать LINQ to XML, чтобы получить необходимые данные из XML. Преимущество этого подхода заключается в том, что он отделяет веб-сайт от сбора данных, поэтому, когда веб-сайт меняет свой формат, вы можете просто изменить XSLT, чтобы он соответствовал, и больше ничего не нужно трогать.

0 голосов
/ 16 июня 2009

Воспользуйтесь услугой, такой как эти ребята , которые почти все для вас сделали. Вы также можете воспользоваться бесплатным сервисом, таким как Dapper . Я считаю, что вы можете экспортировать данные в различные форматы, хотя я не знаю, сможете ли вы получить данные в реальном времени, у вас может быть задержка.

Если вы не хотите программировать все самостоятельно, используя стороннее решение, вы сэкономите время и деньги.

...