trafilatura icon indicating copy to clipboard operation
trafilatura copied to clipboard

HTML entities are converted back to normal chars

Open kinoute opened this issue 2 years ago • 2 comments

Example:

import trafilatura

resp = trafilatura.fetch_url("https://www.usinenouvelle.com/volvo/")
data = trafilatura.bare_extraction(resp,
            include_images=False,
            date_extraction_params={'extensive_search': True},
            include_comments=False,
        )

Results:

{'title': 'Volvo : Toute l’actualité du groupe dans ses différents secteurs d’activité',
 'author': None,
 'url': 'https://www.usinenouvelle.com/volvo/',
 'hostname': 'usinenouvelle.com',
 'description': '<p> <span style="font-size: 13px; color: rgb(0, 0, 0); font-family: Arial;">Volvo est un constructeur suédois de camions et de moteurs qui se spécialise dans la conception des poids lourds, des autobus et des autocars. Au fil des années l’entreprise diversifie sa production. De nos jours Volvo est l’un des principaux constructeurs de camions, bus, cars et engins de chantiers dans le monde et est 2ème constructeur mondial de poids lourds. </span></p>',
# ...
}

The "original" description, found on the page, contains HTML entities:

  <meta name="description" content="&lt;p&gt;
    	&lt;span style=&quot;font-size: 13px; color: rgb(0, 0, 0); font-family: Arial;&quot;&gt;Volvo est un constructeur su&amp;eacute;dois de camions et de moteurs qui se sp&amp;eacute;cialise dans la conception des poids lourds, des autobus et des autocars. Au fil des ann&amp;eacute;es l&amp;rsquo;entreprise diversifie sa production. De nos jours Volvo est l&amp;rsquo;un des principaux constructeurs de camions, bus, cars et engins de chantiers dans le monde et est 2&amp;egrave;me constructeur mondial de poids lourds. &amp;nbsp;&lt;/span&gt;&lt;/p&gt;
    "/>
    <meta name="robots" content="index,follow"/>
    <meta property="og:locale" content="fr_FR"/>
    <meta property="og:title" content="Volvo : Toute l’actualité du groupe dans ses différents secteurs d’activité"/>
    <meta property="og:type" content="website"/>
    <meta property="og:description" content="&lt;p&gt;
    	&lt;span style=&quot;font-size: 13px; color: rgb(0, 0, 0); font-family: Arial;&quot;&gt;Volvo est un constructeur su&amp;eacute;dois de camions et de moteurs qui se sp&amp;eacute;cialise dans la conception des poids lourds, des autobus et des autocars. Au fil des ann&amp;eacute;es l&amp;rsquo;entreprise diversifie sa production. De nos jours Volvo est l&amp;rsquo;un des principaux constructeurs de camions, bus, cars et engins de chantiers dans le monde et est 2&amp;egrave;me constructeur mondial de poids lourds. &amp;nbsp;&lt;/span&gt;&lt;/p&gt;

Trafilatura seems to have converted HTML entities such as &lt; back to < which could lead to injection. I could simply use the html library and its escape function to take care of this but I think Trafilatura may have done this by itself before?

kinoute avatar Jul 01 '22 12:07 kinoute

Hi @kinoute, I don't quite understand, it depends on the chosen output format:

  • JSON: description value without entities because these characters are not an issue
  • XML: use of entities in description text

adbar avatar Jul 01 '22 15:07 adbar

@kinoute Do you have any feedback on this issue?

adbar avatar Aug 01 '22 12:08 adbar