Dans l'article précédent, le script permettait de recuperer toutes les urls des pages facebook publique.
Ici on va ajouter une moulinette pour récupérer la photos présente sur chacune de ces pages.
voici le script:
#!/usr/bin/env python
import urllib2
import os
import sys
import _pg
import ConfigParser
from BeautifulSoup import BeautifulSoup
def getUrlInfo(url):
SERVEUR = "profile.ak.fbcdn.net"
urlBase = url
pageHttp = urllib2.urlopen(urlBase)
pageHtml = str(pageHttp.read())
htmlDom = BeautifulSoup(pageHtml)
# Obtenir l'url de l'image
debutURL = str(pageHtml[pageHtml.find(SERVEUR)+len(SERVEUR):])
base = debutURL[2:]
base = base[:base.find("\/")]
tmp = debutURL[debutURL.find(base)+len(base)+2:]
pictureName = tmp[:tmp.find("\\")]
# On verifie si on a bien un nom d'image
if(pictureName.find(".jpg") == 0):
return
tmp = tmp[tmp.find("alt=\\\"")+len("alt=\\\""):]
FULL_NAME = tmp[:tmp.find("\\\"")]
picture_page = "http://"+SERVEUR+"/"+base+"/"+pictureName
# On ouvre l'url qui mene a l'image
opener1 = urllib2.build_opener()
page1 = opener1.open(picture_page)
# On lit cette url pour la stocker dans une variable
my_picture = page1.read()
filename = FULL_NAME + picture_page[-4:]
# On enregistre l'image telecharger avec comme nom celui du proprietaire de la page
fout = open(filename, "wb")
fout.write(my_picture)
fout.close()
Ce script sera utilisé comme module dans le script précédent pour lancer le téléchargement à chaque itération.