Sie müssen folgendes tun:
- Öffnen Sie die URL
- Lesen Sie den Inhalt der Web-Seite
- erstellen ein Muster, das Sie suchen möchten in den Daten
- Verwenden Sie Regex (Regulärer Ausdruck), um die gewünschten Muster abzugleichen die Daten
Ich habe ein Java-Programm geschrieben, das das obige tut. Hoffe, es hilft :)
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);
}
}
Die Ausgabe des obigen Programms werden sein:
[sunriseTime: 6:14, outsideTemp: 21.7, outsideHumidity: 57]
Sie können die Werte anderer Attribute erhalten Sie durch Angabe der Attributnamen in der keys
Array wollen in das Programm.
Haben Sie erforscht, wie Sie den Inhalt der Website hinter die URL bringen können? – f1sh
Ja, natürlich, aber ich konnte die Daten nicht finden und deshalb habe ich es gewählt. Wenn Sie diese URL sehen und eine Lösung finden möchten, ist dies: (http://penteli.meteo.gr/stations/ioannina/) –
[Warum kann "Kann mir jemand helfen?" Keine eigentliche Frage?] (Http: //meta.stackoverflow.com/q/284236) Weder ist * Hier ist ein Link zu woanders. Geh hinüber, sieh was ich machen will und dann komm zurück und sag mir wie es geht *. Bitte verbringe etwas Zeit mit der [Tour] und lese die [Hilfe] durch, insbesondere [frag], bevor du deine nächste Frage hier postest. Viel Glück. –