pageviews: Affichage des requêtes effectuées
This commit is contained in:
parent
94af43e4a1
commit
200157b01d
|
@ -1,15 +1,38 @@
|
|||
import logging
|
||||
import requests
|
||||
import urllib3
|
||||
|
||||
# Session de requêtage HTTP
|
||||
session = requests.Session()
|
||||
|
||||
# Réalise 10 essais de récupération de chaque page, en augmentant
|
||||
# progressivement le délai entre chaque essai
|
||||
# Objet pour afficher le journal d’exécution
|
||||
logger = logging.getLogger('fetch.http')
|
||||
|
||||
|
||||
class LoggingAdapter(requests.adapters.HTTPAdapter):
|
||||
"""
|
||||
Adapteur de requêtes vérifiant le nombre d’accès réalisés par seconde.
|
||||
"""
|
||||
def __init__(self):
|
||||
# Réessaie jusqu’à dix fois la récupération de chaque page, en
|
||||
# augmentant progressivement le délai entre chaque essai
|
||||
retry = urllib3.util.Retry(total=10, backoff_factor=0.3)
|
||||
adapter = requests.adapters.HTTPAdapter(max_retries=retry)
|
||||
session.mount('http', adapter)
|
||||
session.mount('https', adapter)
|
||||
super(LoggingAdapter, self).__init__(max_retries=retry)
|
||||
|
||||
def send(
|
||||
self, request, stream=False, timeout=None, verify=True,
|
||||
cert=None, proxies=None
|
||||
):
|
||||
logger.debug('{} {}'.format(request.method, request.url))
|
||||
return super(LoggingAdapter, self).send(
|
||||
request, stream=stream, timeout=timeout,
|
||||
verify=verify, cert=cert, proxies=proxies
|
||||
)
|
||||
|
||||
|
||||
adapter = LoggingAdapter()
|
||||
session.mount('http://', adapter)
|
||||
session.mount('https://', adapter)
|
||||
|
||||
# Identification du robot
|
||||
session.headers['User-Agent'] = (
|
||||
|
|
|
@ -28,12 +28,14 @@ def _year_date_distance(a, b):
|
|||
"""
|
||||
Calcule la distance entre deux jours de l’année.
|
||||
|
||||
:example: _year_date_distance(10, 360) == 15
|
||||
:example: _year_date_distance(numpy.array([10, 182, 355]), 182)
|
||||
== [172, 0, 173]
|
||||
:param a: Première valeur (peut être un tableau numpy).
|
||||
:param b: Seconde valeur (peut être un tableau numpy).
|
||||
:return: Valeur de la distance.
|
||||
|
||||
>>> _year_date_distance(10, 360)
|
||||
15
|
||||
>>> _year_date_distance(numpy.array([10, 182, 355]), 182)
|
||||
[172, 0, 173]
|
||||
"""
|
||||
return numpy.stack((
|
||||
numpy.mod(a - b, len(year_all_days)),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/usr/bin/env python3
|
||||
import calendar
|
||||
import collections
|
||||
from datetime import datetime
|
||||
|
@ -8,7 +9,7 @@ from matplotlib import pyplot
|
|||
import sys
|
||||
|
||||
# Objet pour afficher le journal d’exécution
|
||||
logger = logging.getLogger('pageviews')
|
||||
logger = logging.getLogger('plot_pageviews')
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
if len(sys.argv) < 4:
|
||||
|
|
Loading…
Reference in New Issue