【发布时间】:2014-09-14 14:07:50
【问题描述】:
我有一个非常基本的scrapy spider,它从文件中抓取网址然后下载它们。唯一的问题是其中一些被重定向到同一域内稍作修改的 url。我想使用 response.meta 在我的回调函数中获取它们,并且它适用于普通的 url,但随后 url 被重定向,回调似乎没有被调用。我该如何解决? 这是我的代码。
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'))
它也不起作用。
【问题讨论】:
标签: python scrapy web-crawler