2014-09-14 4 views
4

У меня есть очень простой scrapy spider, который захватывает URL-адреса из файла и затем загружает их. Единственная проблема заключается в том, что некоторые из них перенаправлены на слегка измененный URL-адрес в пределах одного домена. Я хочу получить их в моей функции обратного вызова, используя response.meta, и он работает с обычными URL-адресами, но тогда URL-адрес перенаправленного обратного вызова, похоже, не вызван. Как я могу это исправить? Вот мой код.Scroll callback после перенаправления

from scrapy.contrib.spiders import CrawlSpider 
from scrapy import log 
from scrapy import Request 
class DmozSpider(CrawlSpider): 
    name = "dmoz" 
    handle_httpstatus_list = [302] 
    allowed_domains = ["http://www.exmaple.net/"]) 
    f = open("C:\\python27\\1a.csv",'r') 
    url = 'http://www.exmaple.net/Query?indx=' 
    start_urls = [url+row for row in f.readlines()] 
    def parse(self, response): 
      print response.meta.get('redirect_urls', [response.url]) 
      print response.status 
      print (response.headers.get('Location')) 

Я также пытался что-то вроде этого:

def parse(self, response): 
     return Request(response.url, meta={'dont_redirect': True, 'handle_httpstatus_list':  [302]}, callback=self.parse_my_url) 
def parse_my_url(self, response): 
     print response.status 
     print (response.headers.get('Location')) 

И это не работает.

ответ

2

По умолчанию запросы scrapy перенаправляются, хотя если вы не хотите перенаправлять, вы можете сделать это так: используйте метод start_requests и добавьте флаги в запросе meta.

def start_requests(self): 
     requests =[(Request(self.url+u, meta={'handle_httpstatus_list': [302], 
           'dont_redirect': True},   
        callback=self.parse)) for u in self.start_urls] 
     return requests 
+0

Нет, мне нужно получить перенаправленные URL-адреса, они хороши в этом случае. – hellpanderrr

+0

вы можете получить их от функции обратного вызова, там должно быть ** перемещено по ссылке ** или вы можете получить URL из местоположения под заголовками –

Смежные вопросы