Разбор веб-страницы с Java - PullRequest
0 голосов
/ 01 апреля 2012

Я хочу проанализировать ставки реального времени с этой веб-страницы: http://www.truefx.com/ в мои Java-программы, т. Е. Я хочу, чтобы данные с веб-страницы, которые обновляются каждую секунду, постоянно передавались в потоковом режиме.в мою программу.

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

Итак, если кто-нибудь знает о пакете в стандартной загрузке Eclipse, который может это сделать, пожалуйста, дайте мне знать!спасибо


хорошо, так что я получил это работает, но это кажется очень медленным.например, данные будут изменяться от секунды к секунде, и хотя я обновляю веб-страницу, с которой я также читал каждую секунду (я использовал thread.sleep (1000)), а затем получаю новый экземплярвеб-страницы, он обновляется только раз в минуту или около того.что дает?

вот как выглядит мой код (я использовал то, что вы опубликовали выше в качестве моего читателя URL):

 public String getPage(String urlString){
        String result = "";
        //Access the page
        try {
         // Create a URL for the desired page
         URL url = new URL(urlString);
         // Read all the text returned by the server
         BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
         String str;
         while ((str = in.readLine()) != null) {
             // str is one line of text; readLine() strips the newline character(s)
             result += str;
         }
         in.close();             
        } catch (MalformedURLException e) {
        } catch (IOException e) {
        }          
        return result;
    }

    public static void main(String[]args){
        int i =0;
        Reading r = new Reading();

    while(true){
        try{Thread.sleep(1000);}catch(Exception e){}
        String page = new String(r.getPage("http://www.fxstreet.com/rates-charts/forex-rates/"));
        int index = page.indexOf("last_3212166");
        //System.out.println(i+page);
        i++;
        System.out.println(i+"GBP/USD: "+page.substring(index+14,index+20));
    }

1 Ответ

1 голос
/ 01 апреля 2012

С без внешнего API вы можете получить страницу с помощью этой функции, просто импортировав java.net.URL

static public String getPage(String urlString){
    String result = "";
    //Access the page
    try {
     // Create a URL for the desired page
     URL url = new URL(urlString);
     // Read all the text returned by the server
     BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
     String str;
     while ((str = in.readLine()) != null) {
         // str is one line of text; readLine() strips the newline character(s)
         result += str;
     }
     in.close();             
    } catch (MalformedURLException e) {
    } catch (IOException e) {
    }          
    return result;
}

Затем используйте java.util.regex , чтобы сопоставить данные, которые вы хотите получить со страницы.и разбери это в свои ярлыки.Не забудьте поместить все это в поток с циклом while (true) и sleep (some_time) для получения информации по секундам.

...