基礎的爬蟲框架及運行流程

 

 

 

 

 

 

 

 

 

爬蟲框架的基礎和運行流程

 

 

基本的框架流程數據庫

基礎爬蟲框架主要包括五大模塊、分別爲爬蟲調度器、URL管理器、HTML下載器、HTML解析器、數據存儲器。功能分析以下:緩存

爬蟲調度器主要負責統籌其餘四個模塊的協調工做。框架

URL管理器負責URL連接的管理,維護已經爬取的URL集合和未爬取的URL集合,提供獲取新URL連接的接口。性能

HTML下載器用於從URL管理器中獲取未爬取的URL連接並下載HTML網頁。編碼

HTML解析器用於從HTML下載器中獲取已經下載的HTML頁面,並從中解析出新的URL連接交給URL管理器,解析出有效數據交給數據存儲器。url

數據存儲器用於將HTML解析器解析出來的數據經過文件或者數據庫的形式存儲起來。3d

運行流程blog

1.1URL管理器

  URL管理器主要包括兩個變量,一個是已爬取URL的集合,另外一個是未爬取URL的集合。採用Python中的set類型,主要是使用set的去重複功能,防止連接重複爬取,由於爬取鏈接重複時容易形成死循環。連接去重複在Python爬蟲開發中是必備的功能,解決方案主要有三種:接口

1.內存去重內存

2.關係數據庫去重

3.緩存數據庫去重

大型的成熟的爬蟲基本上採用緩存數據庫的去重方案,儘量避免內存大小的限制,又比關係型數據庫去重性能高不少。因爲基礎爬蟲的爬取數量較小,所以咱們可使用Python中set這個內存去重方式。

  URL管理器除了具備兩個URL集合,還須要提供一下接口,用於配合其餘模塊使用,接口以下:

  判斷是否有待取的URL,方法定義爲has_new_url()。

  添加新的URL到未爬取集合中,方法定義爲add_new_url(url),add_new_urls(urls)。

  獲取一個未爬取的URL,方法定義爲get_new_url()。

  獲取未爬取URL集合的大小,方法定義爲new_url_size()。

  獲取已經爬取的URL集合的大小,方法定義爲old_url_size()

 

1.2 HTML下載器

HTML下載器用來下載網頁,這時候須要注意網頁的編碼,以保證下載的網頁沒有亂碼。

下載器須要用到Requests模塊,裏面只須要實現一個接口便可:download(url)。

 

 

 

 

 

 

1.3 HTML解析器

這裏使用的是BeautifulSoup4進行HTML解析。須要解析的部分主要分爲提取相關詞條頁面的URL和提取當前詞條的標題和摘要信息。

 

 

1.4 數據存儲器

 

 

1.5 爬蟲調度器

相關文章
相關標籤/搜索