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 requests | ||||||
| import urllib3 | import urllib3 | ||||||
| 
 | 
 | ||||||
| # Session de requêtage HTTP | # Session de requêtage HTTP | ||||||
| session = requests.Session() | session = requests.Session() | ||||||
| 
 | 
 | ||||||
| # Réalise 10 essais de récupération de chaque page, en augmentant | # Objet pour afficher le journal d’exécution | ||||||
| # progressivement le délai entre chaque essai | logger = logging.getLogger('fetch.http') | ||||||
| retry = urllib3.util.Retry(total=10, backoff_factor=0.3) | 
 | ||||||
| adapter = requests.adapters.HTTPAdapter(max_retries=retry) | 
 | ||||||
| session.mount('http', adapter) | class LoggingAdapter(requests.adapters.HTTPAdapter): | ||||||
| session.mount('https', adapter) |     """ | ||||||
|  |     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) | ||||||
|  |         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 | # Identification du robot | ||||||
| session.headers['User-Agent'] = ( | session.headers['User-Agent'] = ( | ||||||
|  |  | ||||||
|  | @ -28,12 +28,14 @@ def _year_date_distance(a, b): | ||||||
|     """ |     """ | ||||||
|     Calcule la distance entre deux jours de l’année. |     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 a: Première valeur (peut être un tableau numpy). | ||||||
|     :param b: Seconde valeur (peut être un tableau numpy). |     :param b: Seconde valeur (peut être un tableau numpy). | ||||||
|     :return: Valeur de la distance. |     :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(( |     return numpy.stack(( | ||||||
|         numpy.mod(a - b, len(year_all_days)), |         numpy.mod(a - b, len(year_all_days)), | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | #!/usr/bin/env python3 | ||||||
| import calendar | import calendar | ||||||
| import collections | import collections | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
|  | @ -8,7 +9,7 @@ from matplotlib import pyplot | ||||||
| import sys | import sys | ||||||
| 
 | 
 | ||||||
| # Objet pour afficher le journal d’exécution | # Objet pour afficher le journal d’exécution | ||||||
| logger = logging.getLogger('pageviews') | logger = logging.getLogger('plot_pageviews') | ||||||
| logging.basicConfig(level=logging.INFO) | logging.basicConfig(level=logging.INFO) | ||||||
| 
 | 
 | ||||||
| if len(sys.argv) < 4: | if len(sys.argv) < 4: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue