sunriseTime、outTemp、outsideHumidityなどのURLからいくつかのデータを取得したいと思います。どうすればこのことができますか教えてください。次のURLからデータの一部を取得するにはどうすればよいですか?
URL enter link description here
sunriseTime、outTemp、outsideHumidityなどのURLからいくつかのデータを取得したいと思います。どうすればこのことができますか教えてください。次のURLからデータの一部を取得するにはどうすればよいですか?
URL enter link description here
あなたは、次の操作を行う必要があります。
上記のことを行うJavaプログラムを作成しました。それが役に立てば幸い:)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class URLReader {
public static List<String> getAttributesFromURL(String urlString,
String [] keys) {
StringBuilder sb = new StringBuilder();
try {
//Opening the URL
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(urlConnection.getInputStream()));
// Reading the URL contents into a StringBuilder object
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line + "\n");
}
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
// Copying the StringBuilder contents into a string
String contents = sb.toString();
List<String> keyList = Arrays.asList(keys);
List<String> result = new ArrayList<String>();
for (String key : keyList) {
// Defining the pattern to be found in contents
String patternToFind = key + "=\"(.*)\"";
Pattern p = Pattern.compile(patternToFind);
Matcher m = p.matcher(contents);
if (m.find()) {
// If pattern found, store them in the result list
result.add(key + ": " + m.group(1).trim());
}
}
// Returning the result
return result;
}
public static void main(String[] args) throws java.lang.Exception {
String urlString ="http://www.metar.gr/ws/alexan/ZWNTANA.htm";
// List all the keys whose values need to be extracted
String[] keys = {"sunriseTime", "outsideTemp", "outsideHumidity"};
// Getting the result
List<String> attributeValuePairs = getAttributesFromURL(urlString, keys);
System.out.println(attributeValuePairs);
}
}
上記のプログラムの出力は次のようになります。
[sunriseTime: 6:14, outsideTemp: 21.7, outsideHumidity: 57]
あなたがでkeys
配列内の属性名を指定することによって、あなたがしたい他の属性の値を取得することができますプログラム。
私はあなたのコードを使用しましたが、問題はありませんが、私に何も返されません。 –
これは、結果をコンソールに出力したばかりなのでです。実行すると、コンソールに出力が表示されます。あなたはどこからプログラムを実行したか教えていただけますか? – Sanjay
Androidスタジオから私の携帯電話で実行しました –
URLの後ろにウェブサイトの内容を取得する方法を調査しましたか? – f1sh
はい、もちろんですが、そこからデータを見つけることができなかったので、それを選んだ理由です。あなたがそのURLを見て、何か解決策を挙げたいのなら、これは次のようなものです: –
[なぜ誰かが私を助けることができますか?]実際の質問ではありませんか?](http://penteli.meteo.gr/stations/ioannina/) //meta.stackoverflow.com/q/284236)どちらもありません*ここに別の場所へのリンクがあります。そこに行って、私が何をしたいか見てから、ここに戻って来て、それをどうやって行うか教えてください。ここであなたの次の質問を投稿する前に[ツアー]を取って[ヘルプ]、特に[質問]を読んで時間をかけてください。がんばろう。 –