earwig / mwparserfromhell

A Python parser for MediaWiki wikicode
https://mwparserfromhell.readthedocs.io/
MIT License
741 stars 74 forks source link

get_sections returns incomplete section list #311

Open alkanex-xyz opened 10 months ago

alkanex-xyz commented 10 months ago

Hey i have an issue on following page: https://de.wikipedia.org/w/index.php?title=Wikipedia:Auskunft&oldid=238242639

Get_sections does not return all sections.

seite_wikitext = mwparserfromhell.parse(seite.text)
abschnitte = seite_wikitext.get_sections(levels=[1,])

# print(abschnitte)
abschnitt = abschnitte[-1]
ueberschriften = abschnitt.filter_headings()

returns following in ueberschriften:

['= 14. Oktober =', '== Motivation der Parteien im Gazastreifen ==', '== Gaza-Streifen ==', '== ubuntu update hate-speak? ==', '== Nonbinär ==', '== Wieviele Sprachen kennen lautharmonische Prinzipien/Variationen? ==', '== Wo befindet sich die Kunstgalerie [[Teterow]]? ==', '== [[Erregung öffentlichen Ärgernisses]] ==', '== Israel/Palästina auf DDR-Karten ==', '== Löschungen von Erstellungsversuchen von Artikeln über 1 bestimmten Film ==', '== Hot chip verbot==', '= 15. Oktober =', '== Umzeichnung ==', '== Grenzen der Vorstellungskraft bei einer großen Anzahl ==', '== Woher weiß mein digitales Autotachometer die jeweils geltende Höchstgeschwindigkeit? ==', '= 16. Oktober =', '== Knollenblätterpilzvergiftung — wie behandelbar/tödlich ==', '== Sprachenlernen in einer Woche? ==', '== Vorschlag, eine Seite für den iranischen Schauspieler und Komponisten Javad Nazari Shekarchi zu erstellen ==', '== [[ChatGPT]] ist nicht mein Metier ==', '== Metall in Mikrowelle ==', '== CaMKII ==', '== Nägel schneiden ==', '== Apollo 13-Mission EDV ==', '= 17. Oktober =', '== Wie wird man Jude? ==', '== Bietet das russische Namensrecht ähnliche Freiheiten wie ... ==', '== Wie unterscheidet man Betrüger von echtem MS Windows Sicherheitsalarm? ==', '== Museen in Deutschland, wie viele Prozente der Einnahmen werden durch Eintrittskarten erwirtschaftet? ==', '== Der Ethanolanteil in fossilen Kraftstoffen ==', '== Scheidungen als Funktion des Hochzeitsmonats ... ==', "== 'Gebildete Umgangssprache'? =="]

but it should start from the 17. October instead of the 14. October. On other Pages it returns as intended the last section

Python 3.11 mwparserfromhell 0.6.5

alkanex-xyz commented 10 months ago

okay. I found the issue, but how to propely solve?

An IP worte <quetsch> (13:55, 16. Okt. 2023) but that nonexisting tag was never closed. people do something like that from time to time. How can I ignore such issues? Replacing all HTML tags isn't an option as I intend to save the wikicode after processing.

alkanex-xyz commented 10 months ago

After this change https://de.wikipedia.org/w/index.php?title=Wikipedia:Auskunft&curid=9082349&diff=238244462&oldid=238244355 it returns the correct section (maybe till the first Discussion entry?)