J'essaie de déterminer la variance de la longueur des valeurs de paramètres et d'imprimer la valeur de la variance après l'ensemble des combinaisons de paramètres/valeurs respectives.Détermination de la variance de la longueur
Par exemple, la valeur de la variance de date
dans date=2007-04-14
et date=2007-08-19
serait 0. La valeur de id_eve
dans id_eve=479989
, id_eve=47
et id_eve=479
serait 2,88.
A partir de Group values with common domain and page values, nous avons un ensemble d'URL qui sont analysées pour fournir les paramètres/valeurs pour un ensemble d'URL.
Exemple ensemble de données:
www.domain.com/page?id_eve=479989&adm=no
www.domain.com/page?id_eve=47&adm=yes
www.domain.com/page?id_eve=479
domain.com/cal?view=month
domain.com/cal?view=day
ww2.domain.com/cal?date=2007-04-14
ww2.domain.com/cal?date=2007-08-19
www.domain.edu/some/folder/image.php?l=adm&y=5&id=2&page=http%3A//support.domain.com/downloads/index.asp&unique=12345
blog.news.org/news/calendar.php?view=day&date=2011-12-10
www.domain.edu/some/folder/image.php?l=adm&y=5&id=2&page=http%3A//.domain.com/downloads/index.asp&unique=12345
blog.news.org/news/calendar.php?view=month&date=2011-12-10
est analysé par le code Python suivant:
from collections import defaultdict
from urllib import quote
from urlparse import parse_qsl, urlparse
urls = defaultdict(list)
with open('links.txt') as f:
for url in f:
parsed_url = urlparse(url.strip())
params = parse_qsl(parsed_url.query, keep_blank_values=True)
for key, value in params:
urls[parsed_url.path].append("%s=%s" % (key, quote(value)))
# printing results
for url, params in urls.iteritems():
print url
for param in params:
print param
Fournir:
ww2.domain.com/cal
date=2007-04-14
date=2007-08-19
www.domain.edu/some/folder/image.php
l=adm
y=5
id=2
page=http%3A//support.domain.com/downloads/index.asp
unique=12345
l=adm
y=5
id=2
page=http%3A//.domain.com/downloads/index.asp
unique=12345
domain.com/cal
view=month
view=day
www.domain.com/page
id_eve=479989
adm=no
id_eve=47
adm=yes
id_eve=479
blog.news.org/news/calendar.php
view=day
date=2011-12-10
view=month
date=2011-12-10
La pièce supplémentaire nécessaire est pour chaque paramètre/combinaison de valeurs pour imprimer la variation de longueur des valeurs de paramètre pour les paramètres correspondants avec un U similaire RL tel que défini dans la sortie ci-dessus (espérons que lire clairement).
- paramètres de groupe pour le regroupement des URL
- calculer la longueur des valeurs de paramètres
- déterminer la variation de longueur
Ainsi, la sortie désirée serait:
ww2.domain.com/cal
date=2007-04-14
date=2007-08-19
0
www.domain.edu/some/folder/image.php
l=adm
l=adm
0
y=5
y=5
0
id=2
id=2
0
page=http%3A//support.domain.com/downloads/index.asp
0
unique=12345
0
page=http%3A//.domain.com/downloads/index.asp
unique=12345
0
domain.com/cal
0
view=month
view=day
1
www.domain.com/page
id_eve=479989
id_eve=47
id_eve=479
2.88
adm=no
adm=yes
0.25
blog.news.org/news/calendar.php
view=day
view=month
1
date=2011-12-10
date=2011-12-10
0
Pouvez-vous expliquer pourquoi votre exemple serait 2,88? –