.. _wikipediastatscorrection2rst: ========================================== Statistiques Wikipedia - correction (live) ========================================== .. only:: html **Links:** :download:`notebook `, :downloadlink:`html `, :download:`PDF `, :download:`python `, :downloadlink:`slides `, :githublink:`GitHub|_doc/notebooks/internet/wikipedia_stats_correction2.ipynb|*` Récupération de données wikipedia Correction effectué le 4 octobre 2016. .. code:: ipython3 import urllib.request with urllib.request.urlopen('http://www.lemonde.fr') as f: content = f.read() .. code:: ipython3 c2 = content.decode("utf-8") print(len(c2)) .. parsed-literal:: 417304 .. code:: ipython3 with open("lemonde.txt", "w", encoding="utf-8") as f: f.write(c2) .. code:: ipython3 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) .. parsed-literal:: déjà téléchargé déjà décompressé .. parsed-literal:: 'pageviews-20160902-060000.gz.txt' .. code:: ipython3 "%1.3f" % (1/3), 1/3 .. parsed-literal:: ('0.333', 0.3333333333333333) .. code:: ipython3 import pandas df = pandas.read_csv("pageviews-20160902-060000.gz.txt", sep=" ", nrows=10000, encoding="utf-8") df.head() .. raw:: html
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
.. code:: ipython3 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)) .. parsed-literal:: 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 .. parsed-literal:: [Parallel(n_jobs=2)]: Done 14 tasks | elapsed: 20.4s .. parsed-literal:: 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 .. parsed-literal:: [Parallel(n_jobs=2)]: Done 24 out of 24 | elapsed: 2.7min finished .. parsed-literal:: ['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] .. code:: ipython3 !pip install joblib .. parsed-literal:: Requirement already satisfied (use --upgrade to upgrade): joblib in c:\python35_x64\lib\site-packages