Statistiques Wikipedia - correction (live)

Links: notebook, html ., PDF, python, slides ., presentation ., GitHub

Récupération de données wikipedia Correction effectué le 4 octobre 2016.

import urllib.request
with urllib.request.urlopen('http://www.lemonde.fr') as f:
    content = f.read()
c2 = content.decode("utf-8")
print(len(c2))
417304
with open("lemonde.txt", "w", encoding="utf-8") as f:
    f.write(c2)
import urllib.request
debut = "https://dumps.wikimedia.org/other/pageviews/"
change = "2016/2016-09/pageviews-20160901-200000.gz"

def telecharge_wiki_stat(annee, mois, jour, heure):
    fin = "%04d/%04d-%02d/pageviews-%04d%02d%02d-%02d0000.gz" % (
                annee, annee, mois, annee, mois, jour, heure)
    url = debut + fin
    fichier = "pageviews-%04d%02d%02d-%02d0000.gz" % (
                annee, mois, jour, heure)

    # on télécharge
    if not os.path.exists(fichier):
        print("télécharge", fin)
        try:
            with urllib.request.urlopen(url, timeout=1000) as u:
                tout = u.read()
        except Exception as e:
            print("impossible de télécharger", e)
            return None
        print("enregistre", fichier)
        with open(fichier, "wb") as f:
            f.write(tout)
    else:
        print("déjà téléchargé")

    # on décompresse
    if not os.path.exists(fichier + ".txt"):
        import gzip
        with gzip.open(fichier, 'rb') as g:
            file_content = g.read()
        with open(fichier + ".txt", "wb") as f:
            f.write(file_content)
    else: print("déjà décompressé")
    return fichier  + ".txt"

telecharge_wiki_stat(2016,9,2,6)
déjà téléchargé
déjà décompressé
'pageviews-20160902-060000.gz.txt'
"%1.3f" % (1/3), 1/3
('0.333', 0.3333333333333333)
import pandas
df = pandas.read_csv("pageviews-20160902-060000.gz.txt",
                     sep=" ", nrows=10000, encoding="utf-8")
df.head()
aa Main_Page 4 0
0 aa Special:Search 2 0
1 aa User:Gz260 1 0
2 aa.m Main_Page 5 0
3 aa.m Special:Contributions/84.231.242.141 1 0
4 aa.m Special:History/Main_Page 1 0
import urllib.request, os, sys
debut = "https://dumps.wikimedia.org/other/pageviews/"
change = "2016/2016-09/pageviews-20160901-200000.gz"

def telecharge_wiki_stat(annee, mois, jour, heure):
    fin = "%04d/%04d-%02d/pageviews-%04d%02d%02d-%02d0000.gz" % (
                annee, annee, mois, annee, mois, jour, heure)
    url = debut + fin
    fichier = "pageviews-%04d%02d%02d-%02d0000.gz" % (
                annee, mois, jour, heure)
    if not os.path.exists(fichier):
        print("télécharge", fin)
        try:
            with urllib.request.urlopen(url, timeout=1000) as u:
                tout = u.read()
        except Exception as e:
            print("impossible de télécharger", e)
            return None
        print("enregistre", fichier)
        with open(fichier, "wb") as f:
            f.write(tout)
    else: print("déjà téléchargé")
    # décompresse
    if not os.path.exists(fichier + ".txt"):
        import gzip
        with gzip.open(fichier, 'rb') as g:
            file_content = g.read()
        with open(fichier + ".txt", "wb") as f:
            f.write(file_content)
    else: print("déjà décompressé")
    return fichier  + ".txt"


from joblib import Parallel, delayed
from math import sqrt
if __name__ == "__main__":
    # Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
    Parallel(n_jobs=2, verbose=5, backend="threading")(
        delayed(telecharge_wiki_stat)(2016,9,2,h) for h in range(24))
téléchargetélécharge 2016/2016-09/pageviews-20160902-010000.gz
 2016/2016-09/pageviews-20160902-000000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-020000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-030000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-040000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-050000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
déjà téléchargé
déjà décompressé
télécharge 2016/2016-09/pageviews-20160902-070000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-080000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-090000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-100000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-110000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-120000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-130000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-140000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-150000.gz
[Parallel(n_jobs=2)]: Done  14 tasks      | elapsed:   20.4s
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-160000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-170000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-180000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-190000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-200000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-210000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-220000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
télécharge 2016/2016-09/pageviews-20160902-230000.gz
impossible de télécharger HTTP Error 503: Service Temporarily Unavailable
enregistre pageviews-20160902-000000.gz
[Parallel(n_jobs=2)]: Done  24 out of  24 | elapsed:  2.7min finished
['pageviews-20160902-000000.gz.txt',
 None,
 None,
 None,
 None,
 None,
 'pageviews-20160902-060000.gz.txt',
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None]
!pip install joblib
Requirement already satisfied (use --upgrade to upgrade): joblib in c:python35_x64libsite-packages