5

私は、カナダ国境警備隊がWeb サイトで提供する国境待機時間に関する情報を使用して、待機時間分布の視覚的表現を作成する必要があるプロジェクトに取り組んでいます。

私は、Java スクリプトで Web サイトを定期的にチェックし、いくつかの異なる国境駅 (すべてではない) で情報を抽出する方法を見つけようとしています。XPath を使用して特定のステーションを取得すると思いますが、Web ページを定期的にロードするにはどうすればよいでしょうか。

(追伸: 彼らも現在 Twitter アカウントを持っていることは知っていますが、1 日 1 回更新しています。具体的には、Web サイトと XPATH の操作方法を学びたいと思っています)。

4

4 に答える 4

4

わかりました、今日は仕事が少し休みだったので、あなたのために記事を書こうと思いました。サイトを解析するのは初めてなので、間違いがあればすみません。少し調べて、これに jSoup を使用することにしました。

このコードはテーブルを解析し、値を含む 3 つの列をシステム化します。コードを変更して、必要に応じて構築できます :)

jsoup jar をダウンロードする必要があります jSoup のダウンロード

import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.Iterator; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; /** * */ public class ParseWithJsoup{ public static void main(String[] args) { URL url; try { url = new URL("http://www.cbsa-asfc.gc.ca/bwt-taf/menu-eng.html"); URLConnection conn = url.openConnection(); BufferedReader buffRead = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuffer buffer = new StringBuffer(""); String inputLine = ""; // Append the site in a buffer while (inputLine != null){ inputLine = buffRead.readLine(); buffer.append(inputLine); } Document doc = Jsoup.parse(buffer.toString()); // Parse the table Element table = doc.select("table[class=bwt]").first(); //Office elements iterator Iterator<Element> officeElements = table.select("td[headers=Office]").iterator(); //Commercial Flow iterator Iterator<Element> comElements = table.select("td[headers=Com ComCanada]").iterator(); //Travellers Flow iterator Iterator<Element> travElements = table.select("td[headers=Trav TravCanada]").iterator(); // Iterate all elements through first element row for all columns while(officeElements.hasNext()){ System.out.println("Office: " + officeElements.next().text()); System.out.println("Commercial Flow: " + comElements.next().text()); System.out.println("Travellers Flow: " + travElements.next().text()); } } catch (Exception e){ System.out.println("Exc:"+e.getMessage()); } } }

`

于 2013-02-28T10:16:00.017 に答える
4

Java で URL を使用します。URL を作成し、そのメソッド .openConnection() を使用して Web サイトからの読み取りを開始します。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;


public class webVisitor {


    public static void main(String[] args) {

        URL url;

        try {

            url = new URL("http://seinfeldaudio.com");
            URLConnection conn = url.openConnection();

            BufferedReader buffRead = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            String inputLine = "";

            while (inputLine != null){
                inputLine = buffRead.readLine();
                System.out.println(inputLine);
            }


        }
        catch (Exception e){

        }

    }

}

詳細はこちら: http://www.mkyong.com/java/how-to-get-url-content-in-java/

于 2013-02-28T00:34:48.437 に答える
0

Ajaxが使用しているように見えますsetInterval("function()",x)

この質問を参照してください - jQuery ajax呼び出しを繰り返します

私はnode.jsを学ぶことに慣れていませんが、これはそれに適したもののようです

于 2013-02-13T05:36:39.993 に答える
0

DWR (Easy Ajax for Java) を使用し、時間間隔を次のように設定して、Java スクリプトから DWR メソッドを呼び出します。

setInterval(DWR function here , millisec, lang)

Java メソッドでは、java.net.URL クラスを使用して、必要に応じてコンテンツを読み取り、解析します。

于 2013-03-06T16:12:46.807 に答える