2013-05-04 120 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