Ok vamos a ver un poco:
Primera petición (Ok, todo parece normal).
Código HTML:
Ver originalhttps://www.aromas.es/categorias/perfumes/01
Segunda petición (WTF?! varios parametros y un jsessionid)
Código HTML:
Ver originalhttps://www.aromas.es/categorias/perfumes/01;jsessionid=91A7A8305ED54A8F5953E91D9AF69320?p_p_id=ProductosPortlet_WAR_aromasportlets&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-3&p_p_col_pos=3&p_p_col_count=4&_ProductosPortlet_WAR_aromasportlets_accion=buscar&_ProductosPortlet_WAR_aromasportlets_operacion=paginar&_ProductosPortlet_WAR_aromasportlets_pagina=2
Mismos parámetros (diferentes valores) pero sin el jsessionid
Código HTML:
Ver originalhttps://www.aromas.es/categorias/perfumes/01?p_p_id=ProductosPortlet_WAR_aromasportlets&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-3&p_p_col_pos=3&p_p_col_count=4&_ProductosPortlet_WAR_aromasportlets_accion=buscar&_ProductosPortlet_WAR_aromasportlets_operacion=paginar&_ProductosPortlet_WAR_aromasportlets_pagina=3
Despues de abrir y cerrar varias ventanas en modo privado me di cuenta que, si usas la segunda url pero cambias la pagina (la que tiene jsessionid) te lleva a esa pagina. Al parecer tiene una cookie o una sessión que persiste pero nuestro script en python no persiste datos a menos que lo hagamos explicitamente.
Con lo cual podemos hacer un script simple como:
Código Python:
Ver original# coding: utf-8
import urllib2
url = "https://www.aromas.es/categorias/perfumes/01;jsessionid=91A7A8305ED54A8F5953E91D9AF69320?p_p_id=ProductosPortlet_WAR_aromasportlets&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-3&p_p_col_pos=3&p_p_col_count=4&_ProductosPortlet_WAR_aromasportlets_accion=buscar&_ProductosPortlet_WAR_aromasportlets_operacion=paginar&_ProductosPortlet_WAR_aromasportlets_pagina=%d"
url_list = [url % i for i in range(1, 11)]
for i, url in enumerate(url_list, start=1):
response = urllib2.urlopen(url)
html = response.read()
response.close()
with open('perfumes-%02d.html' % i, 'wb') as f:
f.write(html)