Arduino:
Tolka HTML
Hur man gör:
Att tolka HTML på Arduino kräver vanligtvis bibliotek med minimalt fotavtryck på grund av begränsade enhetsresurser. Ett populärt val för webbskrapning och tolkning är att använda ESP8266HTTPClient
och ESP8266WiFi
biblioteken för ESP8266, eller deras motsvarigheter för ESP32, med tanke på deras inbyggda stöd för Wi-Fi-förmågor och HTTP-protokoll. Här är ett grundläggande exempel på att hämta och tolka HTML, med antagandet att du arbetar med en ESP8266 eller ESP32:
Först, inkludera de nödvändiga biblioteken:
#include <ESP8266WiFi.h> // För ESP8266
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
// Använd motsvarande ESP32-bibliotek om du använder en ESP32
const char* ssid = "yourSSID";
const char* password = "yourPASSWORD";
Anslut till ditt Wi-Fi-nätverk:
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Ansluter...");
}
}
Gör en HTTP-förfrågan och tolka ett enkelt stycke HTML:
void loop() {
if (WiFi.status() == WL_CONNECTED) { //Kontrollera Wi-Fi-anslutningens status
HTTPClient http; //Deklarera ett objekt av klassen HTTPClient
http.begin("http://example.com"); //Ange förfrågningsdestination
int httpCode = http.GET(); //Skicka förfrågan
if (httpCode > 0) { //Kontrollera returkoden
String payload = http.getString(); //Hämta förfrågan responslast
Serial.println(payload); //Skriv ut responslasten
// Tolka en specifik del, t.ex. extrahera titel från lasten
int titleStart = payload.indexOf("<title>") + 7; // +7 för att flytta förbi "<title>"-taggen
int titleEnd = payload.indexOf("</title>", titleStart);
String pageTitle = payload.substring(titleStart, titleEnd);
Serial.print("Sidtitel: ");
Serial.println(pageTitle);
}
http.end(); //Stäng anslutning
}
delay(10000); //Gör en förfrågan var 10:e sekund
}
Exempel på utdata (med antagandet att http://example.com har en enkel HTML-struktur):
Ansluter...
...
Sidtitel: Exempeldomän
Detta exempel demonstrerar hämtning av en HTML-sida och extrahering av innehållet i <title>
-taggen. För mer komplex HTML-tolkning, överväg att använda reguljära uttryck (med försiktighet på grund av minnesbegränsningar) eller strängmanipuleringsfunktioner för att navigera genom HTML-strukturen. Avancerad tolkning kan kräva mer sofistikerade tillvägagångssätt, inklusive skräddarsydda tolkningsalgoritmer anpassade till den specifika strukturen av HTML du hanterar, eftersom den standard Arduino-miljön inte inkluderar ett inbyggt HTML-tolkningsbibliotek.