Statistiques Wikipedia - correction (live)#
Links: notebook
, html, PDF
, python
, slides, 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