я 301 пропускал, даж в хендл не загонял.
если на питон.су твой код, почему юзаешь урллиб2 а не скрэпишный хттп? полностью вникнуть пока лень, но если твой скрипт сохраняет саму страницу 301, может выполнять запрос с парсингом как они в мануалах через Request(url, callback=self.parse)? у них оно для парсинга подстраниц как я понимаю:
Код:
def parse(self, response):
hxs = HtmlXPathSelector(response)
for h3 in hxs.select('//h3').extract():
yield MyItem(title=h3)
for url in hxs.select('//a/@href').extract():
yield Request(url, callback=self.parse)
мануалы