Salut,
Lorsque j'ouvre cette page http://www.arte.tv/guide/fr/plus7/to...ideos?date=j-1 avec un navigateur et que je charge le code source de cette page j'obtiens quelque chose de différent qu'avec wget.
Des éléments visibles dans le navigateur n'existe pas dans la deuxième page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ wget http://www.arte.tv/guide/fr/plus7/toutes-les-videos?date=j-1
Dans le code affiché dans le navigateur (ligne 165)
La page chargée avec wget (ligne 165):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <script type="text/javascript"> (function() { var element = React.createElement(CollectionPage, { returnURL: 'http://www.arte.tv/guide/fr/plus7/', videoSet: {"total_count":20,"has_more":false,"videos":[ {"id":"046119-003-A","title":"Les lignes de Wellington (3\/3)",...}, {"id":"046119-002-A","title":"Les lignes de Wellington (2\/3)",...}, {"id":"046119-001-A","title":"Les lignes de Wellington (1\/3)",...}, etc
Il manque les six premières vidéos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <script type="text/javascript"> (function() { var element = React.createElement(CollectionPage, { returnURL: 'http://www.arte.tv/guide/fr/plus7/', videoSet: {"total_count":9,"has_more":false,"videos":[ {"id":"064094-200-A","title":"ARTE Journal",...}, {"id":"064317-019-A","title":"Catherine Deneuve lit la mode...", etc
En réalité, je n'ai pas besoin de charger ces pages avec wget mais plutôt avec une application.
Le site d'arte retourne peut-être une page réduite aux robots mais mon appli définit un user-agent et, d'après moi, ne devrait donc pas être vue comme un robot.
À toutes fins utiles ceci est le code qui charge les pages:
Ici il s'agit de python, mais cela ne change rien, bien sur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0' req = urllib.request.Request(url, data=None, headers={"User-Agent": user_agent}) try: content = urllib.request.urlopen(req) return str(content.read().decode('utf-8', 'replace')) except Exception as why: logger.info('urllib error: %s, %s' % (url, why)) return False
Si quelqu'un a une idée, d'avance merci.
Partager