2011-06-12 2 views
3

allowed_domains에 도메인을 추가해야하므로 "필터링 된 오프 사이트 요청"을받을 수 없습니다.파이썬 스콥 : allowed_domains 데이터베이스에서 새 도메인 추가

내 앱이 데이터베이스에서 가져올 URL을 가져 오므로 수동으로 추가 할 수 없습니다.

나는이 해결하기 위해 나의 첫 번째 문제이고, 거미 초기화에게 괜찮다고이

def __init__(self): 
     super(CrawlSpider, self).__init__() 
     self.start_urls = [] 
     for destination in Phpbb.objects.filter(disable=False): 
       self.start_urls.append(destination.forum_link) 

      self.allowed_domains.append(destination.link) 

start_urls 같은

을 무시하려고 노력했다. 하지만 allow_domains는 아무런 영향을 미치지 않습니다.

도메인 검사를 사용하지 않도록 설정을 변경해야합니까? 나는 단지 데이터베이스의 것들만 원하기 때문에 나는 이것을 원하지 않는다. 그러나 그것은 도메인 체크를 불가능하게하는데 지금 도움이 될 수있다.

감사합니다.

답변

4
  • 'allowed_domains' 매개 변수는 선택 사항입니다.

    def get_host_regex(self, spider): 
        """Override this method to implement a different offsite policy""" 
        allowed_domains = getattr(spider, 'allowed_domains', None) 
        if not allowed_domains: 
         return re.compile('') # allow all by default 
        domains = [d.replace('.', r'\.') for d in allowed_domains] 
        regex = r'^(.*\.)?(%s)$' % '|'.join(domains) 
        return re.compile(regex) 
    
: 시작하려면, 당신은 당신이 당신의 사용자 정의 도메인 필터링 기능을 위해이 기능을 대체 할 수는 scrapy/contrib/spidermiddleware/offsite.py에서 도메인 필터링을
  • 를 사용하지 않도록 건너 뛸 수 있습니다