Différences entre les versions de « Etienne Grignon »
Ligne 2 : | Ligne 2 : | ||
== Etienne == | == 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 = [] | ||
+ | #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) | ||
+ | #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 == | == Projet == |
Version actuelle datée du 7 mai 2021 à 19:43
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 = []
- 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)
- 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
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/