Sto provando a gattonare un URL usando Scrapy. Ma mi reindirizza alla pagina che non esiste.scrapy- come smettere di reindirizzare (302)
Redirecting (302) to <GET http://www.shop.inonit.in/mobile/Products/Inonit-Home-Decor--Knick-Knacks-Cushions/Shor-Sharaba/Andaz-Apna-Apna-Cushion-Cover/1275197> from <GET http://www.shop.inonit.in/Products/Inonit-Home-Decor--Knick-Knacks-Cushions/Shor-Sharaba/Andaz-Apna-Apna-Cushion-Cover/pid-1275197.aspx>
Il problema è http://www.shop.inonit.in/Products/Inonit-Home-Decor--Knick-Knacks-Cushions/Shor-Sharaba/Andaz-Apna-Apna-Cushion-Cover/pid-1275197.aspx esiste, ma http://www.shop.inonit.in/mobile/Products/Inonit-Home-Decor--Knick-Knacks-Cushions/Shor-Sharaba/Andaz-Apna-Apna-Cushion-Cover/1275197 non lo fa, in modo che il crawler cant trovare questo. Ho effettuato la scansione di molti altri siti Web, ma non ho riscontrato questo problema da nessun'altra parte. C'è un modo per fermare questo reindirizzamento?
Qualsiasi aiuto sarebbe molto apprezzato. Grazie.
Aggiornamento: Questa è la mia classe di ragno
class Inon_Spider(BaseSpider):
name = 'Inon'
allowed_domains = ['www.shop.inonit.in']
start_urls = ['http://www.shop.inonit.in/Products/Inonit-Gadget-Accessories-Mobile-Covers/-The-Red-Tag/Samsung-Note-2-Dead-Mau/pid-2656465.aspx']
def parse(self, response):
item = DealspiderItem()
hxs = HtmlXPathSelector(response)
title = hxs.select('//div[@class="aboutproduct"]/div[@class="container9"]/div[@class="ctl_aboutbrand"]/h1/text()').extract()
price = hxs.select('//span[@id="ctl00_ContentPlaceHolder1_Price_ctl00_spnWebPrice"]/span[@class="offer"]/span[@id="ctl00_ContentPlaceHolder1_Price_ctl00_lblOfferPrice"]/text()').extract()
prc = price[0].replace("Rs. ","")
description = []
item['price'] = prc
item['title'] = title
item['description'] = description
item['url'] = response.url
return item
Grazie per la risposta! ma sono un po 'confuso su dove mettere questa riga di codice? Ho provato a sovrascrivere start_requests, ma mi dà un errore L'oggetto "Response" non ha attributo "body_as_unicode" ". Possiamo restituire un articolo e richiedere allo stesso tempo? –
È possibile chiamare hxs = HtmlXPathSelector (risposta) con il reindirizzamento per testare response.status == 302 e eseguire un altro tipo di elaborazione. Gli hx in quel caso falliranno perché response.body è vuoto per lo stato 302 –
Qualcuno ha provato? non funziona con la versione corrente di scrapy, ho provato con ''handle_httpstatus_list': [404, 301]' solo 404 funziona –