11 URL管理器實現

2021-09-24 04:47:30 字數 1174 閱讀 5258

管理待抓取的url集合和已抓取的url集合,管理器:防止重複抓取、防止迴圈抓取,管理器最小功能範圍如下

:# 建立set集合

def__init__

(self)

:# 空集合 set(), 空{}代表dict

self.new_url =

set(

) self.old_url =

set(

)# 編寫乙個方法,新增url

defadd_url

(self, url):if

(url not

in self.new_url)

and(url not

in self.old_url)

: self.new_url.add(url)

# 編寫乙個方法,同時新增多個url

defadd_urls

(self, urls)

:for url in urls:

# 呼叫當前類的方法

self.add_url(url)

defget_url

(self)

:# 隨機返回

url = self.new_url.pop(

) self.old_url.add(url)

return url

defhas_url

(self)

:return

len(self.new_url)

>

0

# 單元測試**,在模組被呼叫時不會執行

if __name__ ==

"__main__"

: um = urlmanager(

) um.add_urls(

["",""

,""])

print

(,um.new_url)

print

(, um.get_url())

print

)

爬蟲學習 URL管理器和實現方法

url管理器一共有三種實現方法,作為個人,我們應當選擇哪種實現方法呢?答案就在下面 爬蟲的簡單架構 一 url管理器 實現方式 有三種 1.記憶體中 python中set 可以直接去除重複的元素 2.關聯式資料庫中 比如 mysql中的urls url,is crawled 建立乙個urls表包含兩...

視窗管理器與X11 雜記

xinit 的地位 視窗管理器只是又乙個 x11 應用程式而已,就像 netscape,gimp 或 xterm 那樣。許多剛剛接觸 x11 的人以為是 x11 在執行視窗管理器,視窗管理器再執行其它程式。但這種看法是其實是錯誤的。如果配置得當的話,您可以在執行各個應用程式的同時,退出正在使用的視窗...

布局管理器 網格袋布局管理器

網格袋布局管理器中的約束條件constrains中有如下字段需要設定 1 constrains.gridx和constrains.gridy 這兩個欄位僅用於指定元件的起始網格座標。2 constrains.gridwidth和constrains.gridheight 這兩個字段用於指定元件所佔網...