python 파충류 의 url 관리자 가 인 스 턴 스 를 다시 작 동 합 니 다.

우리 가 화물 을 보관 해 야 할 때 가장 좋 은 방법 은 창고 가 있어 서 보관 하 는 것 이다.우 리 는 URL 관리 자 를 데 이 터 를 수집 한 큰 창고 로 볼 수 있 는데,다운로드 기 는 바로 이 창고 화물 의 운반 자 이다.다운로드 기 에 관 한 문 제 는 잠시 이야기 하지 않 겠 습 니 다.이 편 에 서 는 url 관리자 에서 중복 되 는 데 이 터 를 어떻게 식별 하여 창고 처럼 같은 물건 을 너무 많이 사재 기 하지 않도록 해 야 하 는 지 에 대해 논의 하고 있다.재 미 있 겠 지?오늘 공부 에 같이 들 어가 보 자.
URL 관리 자 는 도대체 어떤 기능 을 가 져 야 합 니까?
  • URL 다운로드 기 는 두 개의 창 고 를 포함 하고 기어 오 르 지 않 은 링크 와 이미 기어 오 른 링크 를 각각 저장 해 야 합 니 다
  • 4.567917.상기 두 창고 에 링크 를 추가 하 는 함수 가 있어 야 합 니 다.
  • 새로운 url 창고 에서 무 작위 로 링크 를 꺼 내 서 다운로드 기 가 기어 올 라 갈 수 있 도록 하 는 함수 가 있어 야 합 니 다
  • URL 다운로드 기 는 중복 되 는 링크 를 식별 할 수 있어 야 한다.이미 기어 간 링크 는 창고 에 넣 을 필요 가 없다

  • 만약 에 하나의 URL 관리자 가 상기 4 가지 기능 을 가 질 수 있다 면'참 새 는 작 지만 오장 이 모두 갖 추어 진 것'이 라 고 할 수 있다.그러나 링크 가 이 기능 을 중시 하려 면 어떻게 실현 해 야 합 니까?
    링크 가 무 거 워 지 는 것 은 파충류 의 효율 과 관련 된 비교적 관건 적 인 점 이다.특히 기어 오 르 는 데이터 의 양 이 매우 많 을 때 이다.이 간단 한 예 에서 데이터 양 이 비교적 적기 때문에 우 리 는 너무 복잡 한 알고리즘 을 필요 로 하지 않 고 python 의 set()함 수 를 직접 빌 리 면 된다.이 함 수 는 집합 대상 을 생 성 할 수 있 고 그 요 소 는 중복 할 수 없다.
    상기 분석 에 따 르 면 URL 관리자 의 w 코드 는 다음 과 같다.
    
    '''
    UrlManager
    class UrlManager(object):
      def __init__(self):
        #           url  
        self.new_urls = set()
        self.old_urls = set()
      #   url            url
      def has_new_url(self):
        return len(self.new_urls)
      # new_url        url
      def get_new_url(self):
        return self.new_urls.pop()
      def add_new_url(self, url):  #          ……
        '''
           url   new_urls   
        parm url: str
        return:
        if url is None:
          return
        #     old_urls        ,new_urls           
        if url not in self.old_urls:
          self.new_urls.add(url)
      def add_new_urls(self, urls):
           url   new_urls   
        parm url:      
        print "start add_new_urls"
        if urls is None or len(urls) == 0:
        for url in urls:
          self.add_new_url(url)
      def add_old_url(self, url):
        self.old_urls.add(url)
        print "add old url succefully"
      #        url   
      def old_url_size(self):
        return len(self.old_urls)
    상기 코드 를 시도 한 파트너 는 url 관리자 로 중 복 된 데 이 터 를 선별 하 는 데 성공 했다.오늘 의 학습 을 통 해 url 의 기본 기능 과 간단 한 사용 을 이해 할 수 있 을 것 이 라 고 믿 습 니 다.
    python 파충류 의 url 관리자 가 인 스 턴 스 를 다시 조작 하 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 python 파충류 의 url 관리자 가 어떻게 내용 을 다시 사용 하 는 지 에 대해 서 는 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기