如何在python中使用URL管理器模塊?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
URL管理器模塊
一般是用來維護爬取的url和未爬取的url已經新添加的url的,如果隊列中已經存在了當前爬取的url了就不需要再重復爬取了,另外防止造成一個死循環(huán)。舉個例子
我爬www.baidu.com 其中我抓取的列表中有music.baidu.om,然后我再繼續(xù)抓取該頁面的所有鏈接,但是其中含有www.baidu.com,可以想象如果不做處理的話就成了一個死循環(huán)了,在百度首頁和百度音樂頁循環(huán),所以有一個對列來維護URL是很重要的。
下面以python代碼實現(xiàn)為例,使用的deque雙向隊列方便取出以前的url。
from collections import deque class URLQueue(): def __init__(self): self.queue = deque() # 待抓取的網頁 self.visited = set() # 已經抓取過的網頁 def new_url_size(self): ''''' 獲取未爬取URL集合的大小 :return: ''' return len(self.queue) def old_url_size(self): ''''' 獲取已爬取URL的大小 :return: ''' return len(self.visited) def has_new_url(self): ''''' 判斷是否有未爬取的URL :return: ''' return self.new_url_size() != 0 def get_new_url(self): ''''' 獲取一個未爬取的URL :return: ''' new_url = self.queue.popleft()#從左側取出一個鏈接 self.old_urls.add(new_url)#記錄已經抓取 return new_url def add_new_url(self, url): ''''' 將新的URL添加到未爬取的URL集合 :param url: 單個url :return: ''' if url is None: return False if url not in self.new_urls and url not in self.old_urls: self.new_urls.append(url) def add_new_urls(self, urlset): ''''' 將新的URL添加到未爬取的URL集合 :param urlset: url集合 :return: ''' if urlset is None or len(urlset) == 0: return for url in urlset: self.add_new_url(url)
python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)成都網站設計公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)成都網站設計公司的支持。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、網站設計器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:如何在python中使用URL管理器模塊-創(chuàng)新互聯(lián)
網站網址:http://chinadenli.net/article30/iooso.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、Google、標簽優(yōu)化、ChatGPT、網站建設、網頁設計公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容