目的意義
基礎爬蟲分5個模組,使用多個檔案相互配合,實現乙個相對完善的資料爬取方案,便於以後更完善的爬蟲做準備。
本文思路**書籍。其**部分**書籍。
功能模組
主檔案:爬蟲排程器,通過呼叫其他檔案中的方法,完成最終功能實現。
設計思路
定義spiderman類作為爬蟲排程器。輸入根url開始爬取資料然後爬取結束。
在爬取過程中,需要獲取網頁,和解析網頁。
解析網頁需要解析的資料有:url,title,context等。則需要url管理器和資料儲存器。
主檔案設計
根據內容,呼叫解析器:
解析出該url中的新url,存入url管理器;
解析出該url中的標題,文字等資訊,存入資料儲存器。
重複結束以提取出的url數量超過200則結束。
**如下:
作為最初的設計,應該允許異常丟擲,便於檢視程式終止的原因,然後排查錯誤。
html解析器設計
建立相應的解析器,需要開啟原始碼對比,然後進行使用原始碼分析,使用beautifulsoup獲取所需資訊。
為了便於主函式呼叫或者其他原因,將所有資料通過parser實現返回,其parser分別呼叫獲取url和獲取資料文字的資訊。
為了處理一些不同網頁可能抓取的意外情況導致程式終止,新增了一些判斷。
url管理器設計
為了避免重複的url,使用python的set,建立集合初始化。參閱:
使用old_urls儲存已經訪問過的**,使用new_urls存入將要提取的**。
然後寫好has_new_url等方法,輔助主程式呼叫。當得到新的url們時,主程式呼叫函式將他們存入。
而主程式需要的其他url管理方案,如提取,數量判定等,也在這裡實現。
資料儲存器設計
通過html解析器獲取的資料,通過資料儲存器進行儲存。
而最終將資料從記憶體寫入到本地磁碟,也在該檔案實現。
為了除錯美觀,建議是先爬取一兩個資料做好測試,寫好table的寬度設定,加入style='word-break:break-all;word-wrap:break-word;'引數。參閱:
最終效果:
當然還有一些資料沒有處理好。
python爬蟲思路
python2 爬蟲 從網頁上採取資料 爬蟲模組 urllib,urllib2,re,bs4,requests,scrapy,xlml 1.urllib 2.request 3.bs4 4.正則re 5種資料型別 1 數字number 2 字串string 3 列表list 中文在可迭代物件就是un...
Python 爬蟲亂碼解決思路
這裡從網頁的壓縮方式提供兩種解決方法。方法1 檢視headers中是否設定 accept encoding gzip,deflate,br 如果有,修改為 accept encoding gzip 方法2 安裝brotlipy。import brotli data brotli.decompress...
python爬蟲基礎
一 什麼是爬蟲 通常爬蟲是從某個 的某個頁面開始,爬取這個頁面的內容,找到網頁中的其他鏈結位址,然後從這個位址爬到下乙個頁面,這樣一直不停的爬下去,進去批量的抓取資訊。那麼,我們可以看出網路爬蟲就是乙個不停爬取網頁抓取資訊的程式。二 爬蟲的基本流程 1,發起請求 向目標站點傳送乙個requests請...