Search code examples
pythonxmlparsingtext

.XML file too large when I want to extract text


I downloaded the Wikipedia data in smaller chunks from here. I unzipped the files and now I want to extract the text from them (the largest are over 3 GB). I have a code that works, but it crashes when the file is too large:

doc = untangle.parse('C:\\path\\dewiki-20210820-pages-articles-multistream1.xml-p1p297012')
for page in doc.mediawiki.page:
    print(page.title.cdata)
    for text in page.revision.text:
        print(text.cdata, file=open("wiki1.txt", "a"))

From what I understand I could either use some paid software to split the .xml's in smaller chunks, or do it manually in a text editor, but I can't even open them in text editors. Are there any other options?

Input example:

<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="de">
    <siteinfo>
        <sitename>Wikipedia</sitename>
        <dbname>dewiki</dbname>
        <base>https://de.wikipedia.org/wiki/Wikipedia:Hauptseite</base>
        <generator>MediaWiki 1.37.0-wmf.19</generator>
        <case>first-letter</case>
        <namespaces>
            <namespace key="-2" case="first-letter">Medium</namespace>
            <namespace key="-1" case="first-letter">Spezial</namespace>
            <namespace key="0" case="first-letter" />
            <namespace key="1" case="first-letter">Diskussion</namespace>
            <namespace key="2" case="first-letter">Benutzer</namespace>
            <namespace key="3" case="first-letter">Benutzer Diskussion</namespace>
            <namespace key="4" case="first-letter">Wikipedia</namespace>
            <namespace key="5" case="first-letter">Wikipedia Diskussion</namespace>
            <namespace key="6" case="first-letter">Datei</namespace>
            <namespace key="7" case="first-letter">Datei Diskussion</namespace>
            <namespace key="8" case="first-letter">MediaWiki</namespace>
            <namespace key="9" case="first-letter">MediaWiki Diskussion</namespace>
            <namespace key="10" case="first-letter">Vorlage</namespace>
            <namespace key="11" case="first-letter">Vorlage Diskussion</namespace>
            <namespace key="12" case="first-letter">Hilfe</namespace>
            <namespace key="13" case="first-letter">Hilfe Diskussion</namespace>
            <namespace key="14" case="first-letter">Kategorie</namespace>
            <namespace key="15" case="first-letter">Kategorie Diskussion</namespace>
            <namespace key="100" case="first-letter">Portal</namespace>
            <namespace key="101" case="first-letter">Portal Diskussion</namespace>
            <namespace key="828" case="first-letter">Modul</namespace>
            <namespace key="829" case="first-letter">Modul Diskussion</namespace>
            <namespace key="2300" case="first-letter">Gadget</namespace>
            <namespace key="2301" case="first-letter">Gadget Diskussion</namespace>
            <namespace key="2302" case="case-sensitive">Gadget-Definition</namespace>
            <namespace key="2303" case="case-sensitive">Gadget-Definition Diskussion</namespace>
        </namespaces>
    </siteinfo>
    <page>
        <title>Alan Smithee</title>
        <ns>0</ns>
        <id>1</id>
        <revision>
            <id>206555397</id>
            <parentid>203805452</parentid>
            <timestamp>2020-12-14T23:55:02Z</timestamp>
            <contributor>
                <username>Phzh</username>
                <id>1029574</id>
            </contributor>
            <minor />
            <comment>Form, typo</comment>
            <model>wikitext</model>
            <format>text/x-wiki</format>
            <text bytes="7675" xml:space="preserve">'''Alan Smithee''' steht als [[Pseudonym]] für einen fiktiven Regisseur, der Filme verantwortet, bei denen der eigentliche [[Regisseur]] seinen Namen nicht mit dem Werk in Verbindung gebracht haben möchte. Von 1968 bis 2000 wurde es von der [[Directors Guild of America]] (DGA) für solche Situationen empfohlen, seither ist es '''Thomas Lee'''.&lt;ref&gt;[[Los Angeles Times|latimes]].com: [http://articles.latimes.com/2000/jan/15/entertainment/ca-54271 ''Name of Director Smithee Isn't What It Used to Be''], zuletzt geprüft am 2. April 2011.&lt;/ref&gt; ''Alan Smithee'' ist jedoch weiterhin in Gebrauch.

Alternative Schreibweisen sind unter anderem die Ursprungsvariante ''Al'''len''' Smithee'' sowie ''Alan Sm'''y'''thee'' und ''A'''dam''' Smithee''. Auch zwei teilweise asiatisch anmutende Schreibweisen ''Alan Smi Thee'' und ''Sumishii Aran'' gehören – so die [[Internet Movie Database]] – dazu.&lt;ref name=&quot;IMDb&quot;&gt;[http://www.imdb.com/name/nm0000647/ Eigener Eintrag für ''Alan Smithee'' in der IMDb]&lt;/ref&gt;

== Geschichte ==
=== Entstehung ===
Das Pseudonym entstand 1968 infolge der Arbeiten am Western-Film ''Death of a Gunfighter'' (deutscher Titel ''[[Frank Patch – Deine Stunden sind gezählt]]''). Regisseur [[Robert Totten]] und Hauptdarsteller [[Richard Widmark]] gerieten in einen Streit, woraufhin [[Don Siegel]] als neuer Regisseur eingesetzt wurde.

Der Film trug nach Abschluss der Arbeiten noch deutlich Tottens [[Manier (Stil)|Handschrift]], der auch mehr Drehtage als Siegel daran gearbeitet hatte, weshalb dieser die Nennung seines Namens als Regisseur ablehnte. Totten selbst lehnte aber ebenfalls ab. Als Lösung wurde  ''Allen Smithee'' als ein möglichst einzigartiger Name gewählt.&lt;ref&gt;[http://www.imdb.com/name/nm0000647/bio ''Biography for Alan Smithee''] in der Internet Movie Database&lt;/ref&gt;

In den zeitgenössischen Kritiken wurde der Regisseur u.&amp;nbsp;a. von [[Roger Ebert]] mit den Worten gelobt: 
{{Zitat
 |Text=Director Allen Smithee, a name I’m not familiar with, allows his story to unfold naturally. He never preaches, and he never lingers on the obvious. His characters do what they have to do.&lt;ref&gt;rogerebert.[[Chicago Sun-Times|suntimes]].com: [https://www.rogerebert.com/reviews/death-of-a-gunfighter-1969 ''Death of a Gunfighter''], zuletzt geprüft am 2. April 2011&lt;/ref&gt;
 |Sprache=en
 |Übersetzung=Regisseur Alan Smithee, ein Name, der mir nicht vertraut ist, erlaubt es seiner Handlung, sich natürlich zu entfalten. Er predigt niemals, und er verweilt nie beim Offensichtlichen. Seine Charaktere tun, was sie tun müssen.}}

=== Aufdeckung und Abkehr ===
1997 kam die Parodie ''An Alan Smithee Film: Burn Hollywood Burn'' (deutscher Titel ''[[Fahr zur Hölle Hollywood]]'') in die Kinos, was das Pseudonym einem größeren Publikum bekannt machte, nicht zuletzt weil [[Arthur Hiller (Regisseur)|Arthur Hiller]], der eigentliche Regisseur des Films, selbst seinen Namen zurückzog und analog zum Filmtitel das Pseudonym ''Alan Smithee'' benutzte. Der Film gilt als einer der schlechtesten Filme der 1990er Jahre und gewann fünf [[Goldene Himbeere]]n.

Der Film ''[[Supernova (2000)|Supernova]]'' ist der erste Post-Smithee-Film, dort führte ein gewisser ''Thomas Lee'' alias [[Walter Hill]] die Regie.
&lt;!-- fand nur einen für den von 1990, siehe ''[[Das Kindermädchen]]'':
„Smithee wurde allerdings auch nach ''Supernova'' gesichtet, in einem Film namens ''The Guardian''.“
--&gt;

== Verwendung ==
Die Verwendung dieses oder eines anderen Pseudonyms ist für Mitglieder der DGA streng reglementiert. Ein Regisseur, der für einen von ihm gedrehten Film seinen Namen nicht hergeben möchte, hat nach Sichtung des fertigen Films drei Tage Zeit, anzuzeigen, dass er ein Pseudonym verwenden möchte. Der Rat der DGA entscheidet binnen zwei Tagen über das Anliegen. Erhebt die Produktionsfirma Einspruch, entscheidet ein Komitee aus Mitgliedern der DGA und der Vereinigung der Film- und Fernsehproduzenten, ob der Regisseur ein Pseudonym angeben darf. Über die Beantragung muss der Regisseur Stillschweigen halten, ebenso darf er den fertigen Film nicht öffentlich kritisieren, wenn die DGA ihm die Verwendung eines Pseudonyms zugesteht.&lt;ref&gt;Siehe zu diesen Regelungen [http://www.dga.org/~/media/Files/Contracts/Agreements/2008%20BA/008ba2008article8.pdf Artikel 8, Abschnitt 8-211 des ''Basic Agreement''] (PDF; 125&amp;nbsp;kB) der DGA von 2008, abgerufen am 25. April 2012.&lt;/ref&gt; Ein Antrag des Regisseurs auf Pseudonymisierung kann abgelehnt werden, so durfte [[Tony Kaye (Regisseur)|Tony Kaye]] den Namen Smithee bei dem Film ''[[American History X]]'' nicht einsetzen, obwohl er den Antrag stellte.

Auch bei nicht-US-amerikanischen Produktionen wird der Name verwendet, wie etwa beim [[Pilotfilm]] der Fernsehserie ''[[Schulmädchen (Fernsehserie)|Schulmädchen]]''. 2007 sendete die ARD am 8. und 9. August den zweiteiligen TV-Film ''Paparazzo''. Auch in diesem Werk erscheint anstatt des eigentlichen Regisseurs [[Stephan Wagner (Regisseur)|Stephan Wagner]] Alan Smithee im Abspann.

Regisseure, die das Pseudonym benutzt haben:
* [[Don Siegel]] und [[Robert Totten]] (für ''[[Frank Patch – Deine Stunden sind gezählt]]'')
* [[David Lynch]] (für die dreistündige Fernsehfassung von ''[[Der Wüstenplanet (Film)|Der Wüstenplanet]]'')
* [[Chris Christensen]] (''The Omega Imperative'')
* [[Gianni Bozzacchi]] (für ''I Love N.Y.'')
* [[Stuart Rosenberg]] (für ''Let’s Get Harry'')
* [[Richard C. Sarafian]] (für ''[[Starfire]]'')
* [[Dennis Hopper]] (für ''[[Catchfire]]'')
* [[Arthur Hiller (Regisseur)|Arthur Hiller]] (für ''[[Fahr zur Hölle Hollywood]]'')
* [[Rick Rosenthal]] (''Die Vögel II – Die Rückkehr'')
* [[Kevin Yagher]] (''[[Hellraiser IV – Bloodline]]'')
* [[William Lustig]] (''[[Maniac Cop 3]]'')

Der Pilotfilm der Serie ''[[MacGyver]]'' und die fünfte Folge der ersten Staffel führen einen Alan Smithee als Regisseur. Auf der TV-Serien-Seite ''TV Rage'' wird Jerrold Freedman als Regisseur des Pilotfilms angegeben. Der Regisseur der fünften Folge ist unbekannt.

Zu den Drehbuchautoren, die das Pseudonym benutzt haben, gehören [[Sam Raimi]] und [[Ivan Raimi]], die das Drehbuch zu ''Die total beknackte Nuß'' als ''Alan Smithee, Jr.'' und ''Alan Smithee, Sr.'' schrieben.

Auch in Computerspielen wird dieses Pseudonym angegeben: Im Abspann des Ego-Shooters ''Marine Sharpshooter IV'' aus dem Jahr 2008 wird als Art Director des Spiels ''Alan Smithee'' genannt.&lt;ref&gt;[https://www.spiegel.de/geschichte/regie-phantom-a-946618.html spiegel.de]&lt;/ref&gt;

2014 produzierte die [[New York City|New Yorker]] Performance-Kompanie [[Big Dance Theater]] ''Alan Smithee Directed this Play'', das im August des Jahres auch in Berlin bei [[Tanz im August]] aufgeführt wurde.&lt;ref&gt;''Alan Smithee ist schuld!'' in [[Frankfurter Allgemeine Sonntagszeitung]] vom 17. August 2014, S. 36.&lt;/ref&gt;

== Literatur ==
* Jeremy Braddock, Stephen Hock (Hrsg.): ''Directed by Allen Smithee.'' Foreword by Andrew Sarris. University of Minnesota Press, Minneapolis, London 2001, ISBN 0-8166-3534-X.

== Weblinks ==
* {{IMDb|nm0000647}}
* [http://www.abc.net.au/rn/arts/atoday/stories/s353584.htm Artikel über Smithee von ABC Online (englisch)]
* [https://www.spiegel.de/geschichte/regie-phantom-a-946618.html Der Mann, der niemals lebte, Spiegel Online einestages]
* [http://dradiowissen.de/beitrag/alan-smithee-die-film-legende-lebt Alan Smithee lebt!, DRadio Wissen]

== Einzelnachweise ==
&lt;references /&gt;

{{Normdaten|TYP=p|GND=123396956|VIAF=86737339}}

[[Kategorie:Fiktive Person|Smithee, Alan]]
[[Kategorie:Pseudonym]]
[[Kategorie:Sammelpseudonym|Smithee, Alan]]
[[Kategorie:Werk von Alan Smithee]]</text>
            <sha1>gqeuf21bfjwviq36ay4kmbwms1nkrem</sha1>
        </revision>
    </page>
</mediawiki>

Output (extremely unclean):

'''Alan Smithee''' steht als [[Pseudonym]] für einen fiktiven Regisseur, der Filme verantwortet, bei denen der eigentliche [[Regisseur]] seinen Namen nicht mit dem Werk in Verbindung gebracht haben möchte. Von 1968 bis 2000 wurde es von der [[Directors Guild of America]] (DGA) für solche Situationen empfohlen, seither ist es '''Thomas Lee'''.<ref>[[Los Angeles Times|latimes]].com: [http://articles.latimes.com/2000/jan/15/entertainment/ca-54271 ''Name of Director Smithee Isn't What It Used to Be''], zuletzt geprüft am 2. April 2011.</ref> ''Alan Smithee'' ist jedoch weiterhin in Gebrauch.

Alternative Schreibweisen sind unter anderem die Ursprungsvariante ''Al'''len''' Smithee'' sowie ''Alan Sm'''y'''thee'' und ''A'''dam''' Smithee''. Auch zwei teilweise asiatisch anmutende Schreibweisen ''Alan Smi Thee'' und ''Sumishii Aran'' gehören – so die [[Internet Movie Database]] – dazu.<ref name="IMDb">[http://www.imdb.com/name/nm0000647/ Eigener Eintrag für ''Alan Smithee'' in der IMDb]</ref>

== Geschichte ==
=== Entstehung ===
Das Pseudonym entstand 1968 infolge der Arbeiten am Western-Film ''Death of a Gunfighter'' (deutscher Titel ''[[Frank Patch – Deine Stunden sind gezählt]]''). Regisseur [[Robert Totten]] und Hauptdarsteller [[Richard Widmark]] gerieten in einen Streit, woraufhin [[Don Siegel]] als neuer Regisseur eingesetzt wurde.

Der Film trug nach Abschluss der Arbeiten noch deutlich Tottens [[Manier (Stil)|Handschrift]], der auch mehr Drehtage als Siegel daran gearbeitet hatte, weshalb dieser die Nennung seines Namens als Regisseur ablehnte. Totten selbst lehnte aber ebenfalls ab. Als Lösung wurde  ''Allen Smithee'' als ein möglichst einzigartiger Name gewählt.<ref>[http://www.imdb.com/name/nm0000647/bio ''Biography for Alan Smithee''] in der Internet Movie Database</ref>

In den zeitgenössischen Kritiken wurde der Regisseur u.&nbsp;a. von [[Roger Ebert]] mit den Worten gelobt: 
{{Zitat
 |Text=Director Allen Smithee, a name I’m not familiar with, allows his story to unfold naturally. He never preaches, and he never lingers on the obvious. His characters do what they have to do.<ref>rogerebert.[[Chicago Sun-Times|suntimes]].com: [https://www.rogerebert.com/reviews/death-of-a-gunfighter-1969 ''Death of a Gunfighter''], zuletzt geprüft am 2. April 2011</ref>
 |Sprache=en
 |Übersetzung=Regisseur Alan Smithee, ein Name, der mir nicht vertraut ist, erlaubt es seiner Handlung, sich natürlich zu entfalten. Er predigt niemals, und er verweilt nie beim Offensichtlichen. Seine Charaktere tun, was sie tun müssen.}}

=== Aufdeckung und Abkehr ===
1997 kam die Parodie ''An Alan Smithee Film: Burn Hollywood Burn'' (deutscher Titel ''[[Fahr zur Hölle Hollywood]]'') in die Kinos, was das Pseudonym einem größeren Publikum bekannt machte, nicht zuletzt weil [[Arthur Hiller (Regisseur)|Arthur Hiller]], der eigentliche Regisseur des Films, selbst seinen Namen zurückzog und analog zum Filmtitel das Pseudonym ''Alan Smithee'' benutzte. Der Film gilt als einer der schlechtesten Filme der 1990er Jahre und gewann fünf [[Goldene Himbeere]]n.

Der Film ''[[Supernova (2000)|Supernova]]'' ist der erste Post-Smithee-Film, dort führte ein gewisser ''Thomas Lee'' alias [[Walter Hill]] die Regie.
<!-- fand nur einen für den von 1990, siehe ''[[Das Kindermädchen]]'':
„Smithee wurde allerdings auch nach ''Supernova'' gesichtet, in einem Film namens ''The Guardian''.“
-->

== Verwendung ==
Die Verwendung dieses oder eines anderen Pseudonyms ist für Mitglieder der DGA streng reglementiert. Ein Regisseur, der für einen von ihm gedrehten Film seinen Namen nicht hergeben möchte, hat nach Sichtung des fertigen Films drei Tage Zeit, anzuzeigen, dass er ein Pseudonym verwenden möchte. Der Rat der DGA entscheidet binnen zwei Tagen über das Anliegen. Erhebt die Produktionsfirma Einspruch, entscheidet ein Komitee aus Mitgliedern der DGA und der Vereinigung der Film- und Fernsehproduzenten, ob der Regisseur ein Pseudonym angeben darf. Über die Beantragung muss der Regisseur Stillschweigen halten, ebenso darf er den fertigen Film nicht öffentlich kritisieren, wenn die DGA ihm die Verwendung eines Pseudonyms zugesteht.<ref>Siehe zu diesen Regelungen [http://www.dga.org/~/media/Files/Contracts/Agreements/2008%20BA/008ba2008article8.pdf Artikel 8, Abschnitt 8-211 des ''Basic Agreement''] (PDF; 125&nbsp;kB) der DGA von 2008, abgerufen am 25. April 2012.</ref> Ein Antrag des Regisseurs auf Pseudonymisierung kann abgelehnt werden, so durfte [[Tony Kaye (Regisseur)|Tony Kaye]] den Namen Smithee bei dem Film ''[[American History X]]'' nicht einsetzen, obwohl er den Antrag stellte.

Auch bei nicht-US-amerikanischen Produktionen wird der Name verwendet, wie etwa beim [[Pilotfilm]] der Fernsehserie ''[[Schulmädchen (Fernsehserie)|Schulmädchen]]''. 2007 sendete die ARD am 8. und 9. August den zweiteiligen TV-Film ''Paparazzo''. Auch in diesem Werk erscheint anstatt des eigentlichen Regisseurs [[Stephan Wagner (Regisseur)|Stephan Wagner]] Alan Smithee im Abspann.

Regisseure, die das Pseudonym benutzt haben:
* [[Don Siegel]] und [[Robert Totten]] (für ''[[Frank Patch – Deine Stunden sind gezählt]]'')
* [[David Lynch]] (für die dreistündige Fernsehfassung von ''[[Der Wüstenplanet (Film)|Der Wüstenplanet]]'')
* [[Chris Christensen]] (''The Omega Imperative'')
* [[Gianni Bozzacchi]] (für ''I Love N.Y.'')
* [[Stuart Rosenberg]] (für ''Let’s Get Harry'')
* [[Richard C. Sarafian]] (für ''[[Starfire]]'')
* [[Dennis Hopper]] (für ''[[Catchfire]]'')
* [[Arthur Hiller (Regisseur)|Arthur Hiller]] (für ''[[Fahr zur Hölle Hollywood]]'')
* [[Rick Rosenthal]] (''Die Vögel II – Die Rückkehr'')
* [[Kevin Yagher]] (''[[Hellraiser IV – Bloodline]]'')
* [[William Lustig]] (''[[Maniac Cop 3]]'')

Der Pilotfilm der Serie ''[[MacGyver]]'' und die fünfte Folge der ersten Staffel führen einen Alan Smithee als Regisseur. Auf der TV-Serien-Seite ''TV Rage'' wird Jerrold Freedman als Regisseur des Pilotfilms angegeben. Der Regisseur der fünften Folge ist unbekannt.

Zu den Drehbuchautoren, die das Pseudonym benutzt haben, gehören [[Sam Raimi]] und [[Ivan Raimi]], die das Drehbuch zu ''Die total beknackte Nuß'' als ''Alan Smithee, Jr.'' und ''Alan Smithee, Sr.'' schrieben.

Auch in Computerspielen wird dieses Pseudonym angegeben: Im Abspann des Ego-Shooters ''Marine Sharpshooter IV'' aus dem Jahr 2008 wird als Art Director des Spiels ''Alan Smithee'' genannt.<ref>[https://www.spiegel.de/geschichte/regie-phantom-a-946618.html spiegel.de]</ref>

2014 produzierte die [[New York City|New Yorker]] Performance-Kompanie [[Big Dance Theater]] ''Alan Smithee Directed this Play'', das im August des Jahres auch in Berlin bei [[Tanz im August]] aufgeführt wurde.<ref>''Alan Smithee ist schuld!'' in [[Frankfurter Allgemeine Sonntagszeitung]] vom 17. August 2014, S. 36.</ref>

== Literatur ==
* Jeremy Braddock, Stephen Hock (Hrsg.): ''Directed by Allen Smithee.'' Foreword by Andrew Sarris. University of Minnesota Press, Minneapolis, London 2001, ISBN 0-8166-3534-X.

== Weblinks ==
* {{IMDb|nm0000647}}
* [http://www.abc.net.au/rn/arts/atoday/stories/s353584.htm Artikel über Smithee von ABC Online (englisch)]
* [https://www.spiegel.de/geschichte/regie-phantom-a-946618.html Der Mann, der niemals lebte, Spiegel Online einestages]
* [http://dradiowissen.de/beitrag/alan-smithee-die-film-legende-lebt Alan Smithee lebt!, DRadio Wissen]

== Einzelnachweise ==
<references />

{{Normdaten|TYP=p|GND=123396956|VIAF=86737339}}

[[Kategorie:Fiktive Person|Smithee, Alan]]
[[Kategorie:Pseudonym]]
[[Kategorie:Sammelpseudonym|Smithee, Alan]]
[[Kategorie:Werk von Alan Smithee]]

Solution

  • Use SAX - it will let you cope with the huge file size.

    import xml.sax
    
    
    class WikiHandler(xml.sax.ContentHandler):
        def __init__(self):
            self.txt = ''
            self.inside_text = False
    
        def startElement(self, tag, attributes):
            self.inside_text = tag == 'text'
    
        # Call when an elements ends
        def endElement(self, tag):
            if self.inside_text and tag == 'text':
                print(self.txt)
                self.txt = ''
    
        def characters(self, content):
            if self.inside_text:
                self.txt += content
    
    
    if __name__ == "__main__":
        parser = xml.sax.make_parser()
        parser.setFeature(xml.sax.handler.feature_namespaces, 0)
        handler = WikiHandler()
        parser.setContentHandler(handler)
        parser.parse("wiki.xml")