2013-05-04 67 views
1

我正在寻找一个解决方案,用于在不允许的域上检查出站链接的请求。请求URL不允许从响应获取状态代码

但我的函数“parse_outboundLinks”永远不会被调用。

我必须修改允许的域吗?

感谢您的帮助

我的代码:只有在指定yield

name = "mySpider" 
    allowed_domains = ["monsite.fr"] 
    start_urls = ["http://www.monsite.fr/"] 
    rules = [Rule(SgmlLinkExtractor(allow=()),follow='true',callback='parse_item')] 

    def parse_item(self, response): 
     xlink = SgmlLinkExtractor(deny_domains=(self.allowed_domains[0])) 
     for link in xlink.extract_links(response): 
      Request(link.url, callback=self.parse_outboundLinks) 

    def parse_outboundLinks(self, response): 
     print response.status 
+0

你调试parse_item? xlink中有链接吗? – 2013-05-04 08:59:05

+0

parse_item的作品。我的所有链接都在xlinks中,例如“http://www.otherdomains.tld”,但函数parse_outboundLinks永远不会被调用。 – HippyZ 2013-05-04 11:31:55

+0

好,然后继续调试,看看它打破了什么地方。熟悉例如pdb http://docs.python.org/2/library/pdb.html – 2013-05-04 11:32:53

回答

0

解析功能将被调用。
变化Request(link.url, callback=self.parse_outboundLinks)在其他线程yield Request(link.url, callback=self.parse_outboundLinks)

类似的问题。
scrapy's Request function is not being called