analizando una url en python con parte cambiante

Estoy analizando una url en Python, a continuación puede encontrar una url de muestra y el código, lo que quiero hacer es dividir el (74743) de la url y crear un bucle for que lo tomará de una lista de piezas. Intenté usar urlparse pero no pude completarlo hasta el final principalmente debido a las partes cambiantes en la url. Solo quiero la forma más fácil y rápida de hacer esto.

Url de muestra:

http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is= 

( http://example.com/wps/portal ) Siempre arreglado

(lYuxDoIwGAYf6f9aqKSjMNQ) Siempre cambiando

(74743) Se tomará de una lista nombre Partes

(IntNumberOf = & is =) También cambia según la sección del sitio web

Aquí está el código:

 from lxml import html import requests import urlparse Parts = [74743, 85731, 93021] url = 'http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is=' parsing = urlparse.urlsplit(url) print parsing 

 >>> import urlparse >>> url = 'http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is=' >>> split_url = urlparse.urlsplit(url) >>> split_url.path '/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/' 

Puede dividir la ruta en una lista de cadenas con ‘/’, cortar la lista y volver a unir:

 >>> path = split_url.path >>> path.split('/') ['', 'wps', 'portal', 'lYuxDoIwGAYf6f9aqKSjMNQ', ''] 

Cortar los dos últimos:

 >>> path.split('/')[:-2] ['', 'wps', 'portal'] 

Y volver a unirse:

 >>> '/'.join(path.split('/')[:-2]) '/wps/portal' 

Para analizar la consulta, use parse_qs:

 >>> parsed_query = urlparse.parse_qs(split_url.query) {'PartNo': ['74743']} 

Para mantener los parámetros vacíos use keep_blank_values=True :

 >>> query = urlparse.parse_qs(split_url.query, keep_blank_values=True) >>> query {'PartNo': ['74743'], 'is': [''], 'IntNumberOf': ['']} 

A continuación, puede modificar el diccionario de consulta:

 >>> query['PartNo'] = 85731 

Y actualiza el split_url original:

 >>> updated = split_url._replace(path='/'.join(base_path.split('/')[:-2] + ['ASDFZXCVQWER', '']), query=urllib.urlencode(query, doseq=True)) >>> urlparse.urlunsplit(updated) 'http://example.com/wps/portal/ASDFZXCVQWER/?PartNo=85731&IntNumberOf=&is='