爬蟲url管理器
此管理器的主要作用:
1. 將新搜尋到的url加入到新url的set( )數據結構中。
2.將已搜尋的url加入到舊url的set( )數據結構中
實現代碼
實現了對url的一系列控制,保證不會有重複的url地址或者不會來回幾個地址重複搜尋。
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
__author__ = 'Gary'
# 爬蟲url管理器
class UrlManager(object):
def __init__(self):
self.new_urls = set()
self.old_urls = set()
def add_new_url(self, url):
if url is None:
return
# 如果這個url既不在新的url列表鍾又不在舊的url列表中,說明這是一個新的url地址
if url not in self.new_urls and url not in self.old_urls:
self.new_urls.add(url)
def add_new_urls(self, urls):
if urls is None or len(urls) == 0 :
return
for url in urls:
self.add_new_url(url)
def has_new_url(self):
# 如果新的url長度不等於0,就說明有的地址
return len('self.new_urls') != 0
def get_new_url(self):
new_url = self.new_urls.pop()
self.old_urls.add(new_url)
return new_url