2013-05-04 1 views
1

허용되지 않는 도메인에서 발신 링크를 확인하도록 요청하는 솔루션을 찾고 있습니다.응답에서 상태 코드를 가져올 수없는 URL을 요청하십시오.

하지만 "parse_outboundLinks"함수는 호출되지 않습니다.

허용 도메인을 수정해야합니까? 당신의 도움이

에 대한

덕분에 내 코드 :

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에 링크가 있습니까? –

+0

parse_item이 작동합니다. 나는 "http : //www.otherdomains.tld"와 같은 xlinks의 모든 링크를 가지고 있지만, parse_outboundLinks 함수는 호출되지 않습니다. – HippyZ

+0

그런 다음 디버깅을 계속하고 어디에 중단되는지 확인하십시오. 예를 들어 pdb에 익숙해지기 http://docs.python.org/2/library/pdb.html –

답변

0

구문 분석 기능은 yield가 지정된 경우에만 전화를받을 것입니다.
변경 에서 yield Request(link.url, callback=self.parse_outboundLinks)

다른 스레드에서 비슷한 문제가 발생합니다.
scrapy's Request function is not being called

관련 문제