Узел очистки текста от HTML

avatar
GeorgB
1 июля 2021 в 19:55
23
1
0

Это URL: https://www.zebrafell.de/starkwind_check.html Я хочу извлечь (для моей страницы погоды):
Letzte Aktualisierung: Пн, 07. Июн, 21:31
Аммерзее
Предупреждение о STARKWIND
Пн, 07. Июн, 20:37 Uhr
Es treten Gewitter und Windböen mit Geschwindigkeiten um 45 км/ч (13 м/с, 25 узлов, Bft 6) auf.
Это соответствующий клип с веб-страницы:

.
...<body><div id="main"><div id="wettertab">
<p><strong>Letzte Aktualisierung: Mo, 07. Jun, 21:31 Uhr</strong></p>
<h1 id="Bayern">Bayern</h1>
<h2 id="Ammersee">Ammersee</h2>
<table>..<thead>
<tr><th>Schlagzeile</th><th>G&uuml;ltig von</th><th>G&uuml;ltig bis</th><th>Beschreibung</th></tr></thead>
<tr><td>Amtliche WARNUNG vor STARKWIND</td><td>Mo, 07. Jun, 20:37 Uhr</td><td></td><td>Es treten Gewitter und Windb&ouml;en mit Geschwindigkeiten um 45 km/h (13m/s, 25kn, Bft 6) auf.
</td></tr></table>...

Я не нашел правильного способа решить эту проблему... (это мой первый раз - я пробовал с got и JSDOM)

 const vgmUrl = "https://www.zebrafell.de/starkwind_check.html";
 const response = await got(vgmUrl);
 const dom = new JSDOM(response.body);
 console.log("test", dom.window.document.querySelectorAll("Ammersee"));

Но результаты всегда пустые... Я даже "Аммерзее" не могу найти?! Может быть, у кого-то есть минутка, чтобы показать мне основы... Большое спасибо (я устал от проб и ошибок)

Источник
DVN-Anakin
1 июля 2021 в 20:03
0

Лично я бы использовал библиотеку Puppeteer для парсинга веб-страниц, но вы можете почерпнуть вдохновение из этого поста здесь coderhelper.com/questions/58052001/…

DVN-Anakin
1 июля 2021 в 20:08
0

Также почему у вас querySelectorAll("Ammersee") вместо querySelectorAll("#Ammersee")?

Ответы (1)

avatar
DVN-Anakin
1 июля 2021 в 20:24
0

Как бы я поступил с библиотекой Puppeteer:

const puppeteer = require('puppeteer');     // First line
const browser = await puppeteer.launch();

const page = await browser.newPage();
await page.goto('https://www.zebrafell.de/starkwind_check.html');

const myElement = await page.evaluate(() => {
   return document.getElementById('Ammersee').outerHTML;
});

console.log(myElement);

await browser.close();

Если вам нужна работающая демонстрация, скопируйте весь мой код без первой строки и вставьте его сюда https://try-puppeteer.appspot.com/, затем нажмите RUN IT

GeorgB
2 июля 2021 в 15:20
0

спасибо за вашу помощь .. это дает запись! Я должен посмотреть более подробно на DOM!