0

問題があり、過去 2 週間から解決できません。ここで助けが欲しい。私は実際に、HTTP Web サイトから有用なデータを取得して使用したいと考えています。このウェブサイトには、実際に事故、事件、およびそれらに関するすべての情報が含まれています。この情報をウェブサイトから取得したいと考えています。Androidアプリで使用します。私はすでにこの質問をしましたが、まだ解決できません。JSON からこのデータを取得する必要があると誰かが私に言いました。私は前にこれをやったことがありません。それが唯一の解決策である場合、どうすればこれを行うことができますか。他に簡単な方法があれば教えてください。私は実際にすべてのウェブサイトのコンテンツを使用して取得しました

private String DownloadText(String URL) {
    int BUFFER_SIZE = 2000;
    InputStream in = null;
    try {
        in = OpenHttpConnection(URL);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
        return "exception in downloadText";
    }

    InputStreamReader isr = new InputStreamReader(in);
    int charRead;
    String str = "";
    char[] inputBuffer = new char[BUFFER_SIZE];          
    try {
        while ((charRead = isr.read(inputBuffer))>0)
        {                    
            //---convert the chars to a String---
            String readString = String.copyValueOf(inputBuffer, 0, charRead);
            str += readString;
            inputBuffer = new char[BUFFER_SIZE];
        }
        in.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return "";
    }    
    return str;        
}

private InputStream OpenHttpConnection(String urlString) throws IOException {

    InputStream in = null;
    int response = -1;

    URL url = new URL(urlString); 
    URLConnection conn = url.openConnection();

    if (!(conn instanceof HttpURLConnection))                     
        throw new IOException("Not an HTTP connection");

    try{
        HttpURLConnection httpConn = (HttpURLConnection) conn;
        httpConn.setAllowUserInteraction(false);
        httpConn.setInstanceFollowRedirects(true);
        httpConn.setRequestMethod("GET");
        httpConn.connect(); 

        response = httpConn.getResponseCode();                 
        if (response == HttpURLConnection.HTTP_OK) {
            in = httpConn.getInputStream();                                 
        }                     
    }
    catch (Exception ex) {
        throw new IOException("Error connecting");            
    }
    return in;     
}

しかし、それはすべてのコンテンツ、つまりすべての情報+html+xml+++を提供します。しかし、私は必要な情報だけが欲しいです。

もう 1 つは、そのデータを取得する前にウェブサイト管理者の許可を取得することは必須ですか?

4

1 に答える 1

1

あなたが探しているのは、Web スクレイピングまたは html スクレイピングと呼ばれるものです。開始するには、この SO の質問をご覧ください: HTML スクレイピングのオプション?

于 2013-06-04T14:45:29.887 に答える