Etienne Grignon

De {}
Aller à la navigation Aller à la recherche

Etienne

Je me suis fait aider dans mon projet n'ayant pas eu le temps de me pencher plus sur le cours durant cette année scolaire. Mon travail consistait à récupérer des photos d'oiseaux sur le site Oiseaux.net (ici seulement ceux de la première page). Il y a quelques problèmes que je n'ai pas pu résoudre comme celui de récupérer les images des autres pages, ainsi que les images qui ont un autre sélecteur

import mechanize

import lxml.html as lh

import cssselect

import ssl

page = 0 liensOiseaux = []

  1. initialisation d'un objet "navigateur" avec la librairie mechanize

br = mechanize.Browser()

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

br.set_handle_robots(False)

  1. fin de la configuration de mechanize

try:

   _create_unverified_https_context = ssl._create_unverified_context

except AttributeError:

   # Legacy Python that doesn't verify HTTPS certificates by default
   pass

else:

   # Handle target environment that doesn't support HTTPS verification
   ssl._create_default_https_context = _create_unverified_https_context

data = br.open('https://www.oiseaux.net/photos/photo'+ str(page) +'.html', timeout=10.0)


rawdata = data.read() unicode = rawdata.decode('utf-8', 'ignore') src = lh.fromstring(unicode)


selecteurs = cssselect.parse('#galerie a') chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteurs[0], translate_pseudo_elements=True) resultats = src.xpath(chemin_xpath)

for resultat in resultats : lien = resultat.get('href') lien = lien[1:] lienUtile = "https://www.oiseaux.net/photos" + lien liensOiseaux.append(lienUtile)

for loop in range (len(liensOiseaux)): data = br.open(liensOiseaux[loop], timeout=10.0) rawdata = data.read() unicode = rawdata.decode('utf-8', 'ignore') src = lh.fromstring(unicode) selecteurs = cssselect.parse('.monimage') chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteurs[0], translate_pseudo_elements=True) resultats = src.xpath(chemin_xpath) for resultat in resultats: imageUrl = resultat.get('src') filename = str(loop) +'.jpg' data = br.open(imageUrl).read() save = open(filename, 'wb') save.write(data) save.close()

Projet

Je souhaite créer une base de données collectant un maximum d’articles sur ma ville de Verrières-le -Buisson dans pleins de journaux différents. Classant les journaux par dates ou types d’événements. J’ai développé une fascination étrange pour ma ville depuis que j’y ai découvert les vidéos d’événements culturelles de celle-ci sur leurs chaîne Youtube.


Sources

http://www.linternaute.com/ville/verrieres-le-buisson/ville-91645

https://www.leparisien.fr/essonne-91/verrieres-le-buisson-91370/

https://www.francebleu.fr/ile-de-france/essonne-91/verrieres-le-buisson-91645

http://randovlb.org/

https://actu.fr/ile-de-france/verrieres-le-buisson_91645

https://www.rnpc.fr/carte-des-centres-rnpc/region-ile-de-france/centre-rnpc-verrieres-le-buisson/


Structure

Schéma programmation.jpg