Использование Java для извлечения данных из Интернета

Мне было интересно, есть ли способ получить определенные данные с веб-сайта с помощью java (eclipse). Например, информация об акциях Yahoo Finances или Bloomberg. Я осмотрелся и нашел некоторые ресурсы, но мне не удалось заставить их работать, возможно, я что-то упускаю или они устарели. Если возможно, я также хочу избегать загрузки каких-либо внешних ресурсов, я прочитал о JSoup и подумаю о нем более серьезно, если все остальное не поможет.

Спасибо за помощь.


person user3682779    schedule 28.05.2014    source источник
comment
Что вы уже пробовали?   -  person dharr    schedule 28.05.2014
comment
Во избежание отрицательных голосов покажите, что вы выполнили некоторые домашние задания и что-то уже пробовали.   -  person David Brossard    schedule 28.05.2014


Ответы (1)


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

По сути, есть 2 альтернативы независимо от языка программирования (Java, .NET, Perl ...):

  1. у веб-сайта есть API: в этом случае это будет REST или SOAP API или, возможно, пользовательский (REST и SOAP, вероятно, составляют подавляющее большинство). Ознакомьтесь с документацией по API этого веб-сайта, если таковая имеется. Также посетите Программируемый Интернет для справок.
  2. на сайте нет API. Затем вам нужно сделать то, что вы здесь называете очисткой экрана. По сути, вы будете отправлять серию HTTP-запросов GET или HTTP POST, как и ваш браузер. Сервер отвечает ответом, содержащим HTML-код. С этого момента вам нужно «проанализировать» HTML, чтобы извлечь нужную информацию. Для этого потребуется усиленный XPath (если контент - XML) или регулярные выражения (если контент - HTML или текст).

Взгляните на HTTP-компоненты Apache, чтобы начать работу.

Если вам нужна только финансовая информация, у Google есть для этого JSON / REST API, и есть вопрос по SO, который вам поможет: Как получить котировки акций с помощью Google Finance API?.

У Yahoo также есть один, и по нему уже есть вопрос в SO: Yahoo Finance Документация по API котировки всех валют

person David Brossard    schedule 28.05.2014