ze stuprocentową pewnością
Nie ma stuprocentowej pewności jeśli chodzi o cokolwiek dotyczącego stron internetowych. Można dokonać jakiejś heurystyki, ale to nie to samo co 100% pewność.
Generalnie można napisać bota, który będzie chodził po stronach, parsował HTML do postaci drzewa (są biblioteki do tego, google: HTML parser ???, gdzie zamiast ??? piszesz swój wybrany język programowania), a następnie analizował strukturę drzewa szukając pewnych treści.
Tyle, że każda strona jest pisana trochę inaczej, więc będą to tylko heurystyki. Np. menu są często pisane za pomocą tagów <ul>
i <li>
. Więc jeśli napotkasz na strukturę typu <ul><li>foo</li><li>bar</li></ul>
to być może jest to menu. (ale nie masz pewności, musiałbyś odróżnić menu od zwykłej listy wypunktowanej). Ale np. jeśli zobaczysz, że dana lista ma klasę czy id menu-cośtam
to już też jest pewna poszlaka, że to menu. Ale też nie pewność.
Oczywiście, jeśli natrafisz na strony pisane w nieco bardziej semantycznym HTMLu, to możliwe, że menu będą mieć atrybut role="menu"
, możliwe, że zostaną też użyte tagi takie jak nav
itp. Tyle, że nie na wszystkich stronach masz tego rodzaju semantyczny HTML.
treści tekstowej - takiej typowo przeznaczonej do czytanie, a nie np. nazw katalogów w menu czy innych tagów
tu byś chyba po prostu musiał analizować zawartość poszczególnych tagów (np. choćby taka pierwsza naiwna heurystyka mogłaby wyglądać tak, żebyś sprawdzał długość tekstu - jeśli jest coś do czytania to powinien być to dłuższy tekst - i szukał np. słów w języku polskim, czy czegoś co wyglądałoby na zdania, np. ciągu wyrazów, które by się kończyły kropką, po której pierwszy wyraz zaczynałby się wielką literą).
No i też pytanie w jakim celu byś to chciał analizować, bo to też różnica.
Jest to też pytanie o to czy strony są pisane w tym samym standardzie (przynajmniej na pewnym, ogólnym poziomie),
Nie. Strony są pisane w różnych standardach i w różnych stylach. Kompletny dziki zachód.
Owszem, strony powinny być pisane obecnie w HTML5, używając semantycznego kodu, bla, bla, bla - ale niestety to jest tylko postulat, a nie rzeczywistość..