node-htmlparser behandelt alle schweren Lasten von HTML-Parsing. Obendrein können Sie mithilfe von CSS-Stil-Selektoren node-soupselect finden, um das gewünschte Element zu finden.
Aber, ich habe mir deine andere Frage angeschaut und die Frage, die du eigentlich stellen solltest, ist nicht "wie kratze ich diese Daten von einer HTML-Seite", sondern "gibt es eine bessere Möglichkeit, die Daten zu erhalten Suchst du? " Die USGS hat APIs that provide their data in machine-readable form.
Here's the JSON object for the location you're intersted in. Um den „letzten Momentanwert“ für die Erhöhung der Reservoiroberfläche zu erhalten, können Sie diese Datei herunterladen würde, machen einen var d = JSON.parse
, und:
for (var i = 0; i < d.value.timeSeries.length; i++) {
if (d.value.timeSeries[i].variable.variableName == 'Elevation of reservoir water surface above datum, ft') {
var result = d.value.timeSeries[i].values[0].value[d.value.timeSeries[i].values[0].value.length-1];
}
}
result
jetzt wie { dateTime: "2012-04-07T17:15:00.000-05:00", value: "1065.91" }
aussehen wird.
Sie wurden bereits über das Problem informiert, aber Sie sollten wahrscheinlich [this] (http://goo.gl/i8h6) lesen, nur um vollständig informiert zu sein. Das Grundproblem hat mit der theoretischen "Macht" des "Maschinen" -Modells von regulären Ausdrücken zu tun, verglichen mit dem, was benötigt wird, um eine Sprache wie HTML zu parsen. Es hat mit der Sprache/Automatentheorie zu tun. – Pointy
Sie können dies sehen: http://stackoverflow.com/questions/7372972/how-do-i-parse-a-html-page-with-node-js – HoLyVieR