Arduino:
HTML:n jäsennys
Kuinka:
HTML:n jäsentäminen Arduinolla vaatii yleensä pienikokoisia kirjastoja rajoitettujen laiteresurssien vuoksi. Suosittu valinta verkkosivujen kaapimiseen ja jäsentämiseen on käyttää ESP8266HTTPClient
- ja ESP8266WiFi
-kirjastoja ESP8266:lle, tai niiden ESP32-vastineita, ottaen huomioon niiden natiivin tuen Wi-Fi-ominaisuuksille ja HTTP-protokollille. Tässä on perusesimerkki HTML:n noutamisesta ja jäsentämisestä, olettaen että käytät ESP8266:ta tai ESP32:ta:
Ensiksi, sisällytä tarvittavat kirjastot:
#include <ESP8266WiFi.h> // ESP8266 varten
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
// Käytä vastaavia ESP32-kirjastoja jos käytät ESP32:ta
const char* ssid = "yourSSID";
const char* password = "yourPASSWORD";
Yhdistä Wi-Fi-verkkoosi:
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Yhdistetään...");
}
}
Tee HTTP-pyyntö ja jäsenne yksinkertainen HTML-koodinpätkä:
void loop() {
if (WiFi.status() == WL_CONNECTED) { //Tarkista Wi-Fi-yhteyden tila
HTTPClient http; //Julista HTTPClient-luokan olio
http.begin("http://example.com"); //Määritä pyynnön kohde
int httpCode = http.GET(); //Lähetä pyyntö
if (httpCode > 0) { //Tarkista palautuva koodi
String payload = http.getString(); //Hae pyynnön vastauskuorma
Serial.println(payload); //Tulosta vastauskuorma
// Jäsennä tietty osa, esim. otsikon poimiminen kuormasta
int titleStart = payload.indexOf("<title>") + 7; // +7 siirtyäkseen "<title>"-tagin ohi
int titleEnd = payload.indexOf("</title>", titleStart);
String pageTitle = payload.substring(titleStart, titleEnd);
Serial.print("Sivun otsikko: ");
Serial.println(pageTitle);
}
http.end(); //Sulje yhteys
}
delay(10000); //Tee pyyntö joka 10. sekunti
}
Esimerkkitulostus (olettaen, että http://example.com sisältää yksinkertaisen HTML-rakenteen):
Yhdistetään...
...
Sivun otsikko: Esimerkkialue
Tämä esimerkki osoittaa HTML-sivun noutamisen ja <title>
-tagin sisällön poimimisen. Monimutkaisempaa HTML-jäsentämistä varten harkitse säännöllisten lausekkeiden käyttöä (varoen muistirajoituksia) tai merkkijonojen käsittelyfunktioita navigoidaksesi läpi HTML-rakenteen. Edistynyt jäsentäminen saattaa vaatia monimutkaisempia lähestymistapoja, mukaan lukien räätälöidyt jäsentämisalgoritmit, jotka on suunniteltu erityisen HTML-rakenteen käsittelyyn, koska standardi Arduino-ympäristö ei sisällä valmista HTML-jäsentämiskirjastoa.