2009-11-23 3 views
1

Я хочу, чтобы иметь возможность извлекать динамические данные с веб-страницы (цены акций). Я начал с того, что вернул html-код, прежде чем понял, что, поскольку это данные в реальном времени, html-код будет мало полезен. Хотя я ищу для сбора конкретных данных, все, что я хочу сделать, это обработать веб-страницу, которую я указываю, которая вернет текст с этого веб-сайта, а не код HTML. В принципе копия и вставка всей страницы была бы замечательной. Любые идеи были бы действительно оценены!Получение динамического текста с веб-сайта в vb.net (VS2008)

+0

Не могли бы вы разместить ссылку на веб-сайт, который вы пытаетесь захватить? Затем мы могли бы попытаться выяснить, как извлекаются данные. – Heinzi

ответ

0

Ну, HTML содержит текст веб-сайта, поэтому вам просто нужно проанализировать HTML.


EDIT: Если данные отсутствуют в HTML-формате, но загружаются динамически, ситуация другая. Как я вижу, у вас есть два варианта:

  1. Узнайте, как данные загружаются (т. Е. Читайте JavaScript на странице). Если он обновляется через какой-либо веб-сервис, вы можете запросить тот же веб-сервис в своей программе.
  2. Используйте веб-браузер, чтобы получить данные, а затем получите динамическое HTML-дерево страницы. Возможно, WPF Webbrowser control может помочь вам в этом, но я не уверен, так как я никогда не делал этого сам.
+0

данные, которые я ищу для обработки, являются частью динамической таблицы, которая обновляется каждые несколько секунд. Таким образом, html будет содержать только таблицу с переменными (а не значениями) внутри HTML-кода. – Craig

+0

ОК, я понимаю. Я обновил свой ответ. – Heinzi

0

Возможно ли найти эти же данные в готовом к употреблению формате, а не очищать HTML? Похоже, есть, вероятно, публичные веб-сервисы для котировок акций.


Например: Быстрый поиск "Фото цена WebService" объявился http://www.webservicex.net/stockquote.asmx; веб-сервис ASMX, который легко потреблять в .NET.

В проекте Visual Studio вы должны добавить ссылку на эту услугу с помощью команды «Добавить веб-ссылку»; заданный вами диалог зависит от того, настроен ли ваш проект на .NET 2.0 или .NET 3.0/3.5.

Я добавил ссылку на службу под названием StockPriceProxy:

Public Function GetQuote(ByVal symbol As String) As String 
    Using quoteService As New StockPriceProxy.StockQuote 
     return quoteService.GetQuote(symbol) 
    End Using 
End Function 
+0

Каким образом я смогу получить эти данные в визуальной студии (vb.net)? я могу вручную сделать это и поднять данные, которые хочу, но все, что я хочу сделать, это нажать кнопку с именем «update» behinf, какой код будет извлекать последние данные с этого сайта. – Craig

1

«Screen выскабливание» разбором HTML настолько начале 2000-х ... то, что я бы сделать, это прочитать на Amazon's Mechnical Turk. Вы можете создать архитектуру с очередью, в которой вы отправляете URL-адреса этому сервису Mechnical Turk. Служба автоматически распределит эти кусочки работы пользователям, которые затем выполнили бы грязную задачу копирования и вставки полезной информации о котировках акций, которая вам нужна. Пользователи со всего мира с нетерпением ожидают доставки следующего URL-адреса в свою папку «Входящие» в механическом туре ... привязка к возможности копирования/вставки другой цены акций для вашего приложения. Конечно, может потребоваться несколько минут, чтобы обновить ваши цены, но, эй, они будут РУЧНЫМИ, разбираемыми РЕАЛЬНЫМИ людьми по всему миру! Просто подумайте о возможностях!

+0

спасибо за предложение, но это на самом деле не поможет мне в долгосрочной перспективе, поскольку это может быть задачей, которую я делаю каждые несколько минут или около того .. также это означает, что мне нужно будет сами вводить данные или дать кому-то доступ к моему исходному коду, ни один из которых не является предпочтительным! Причина, по которой я хочу захватить текст, - это простота, я придумаю дальнейшие методы обработки данных и получения чего-либо, что я считаю нужным – Craig

+0

Я просто был мудрым парнем, как другие предложили здесь, опубликовать ссылку на сайт, который вы пытаетесь очистить. Вы получите лучшие ответы. – Sean