爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

大家如果有什么好的想法請多留言,多提意見。

語言&環境

語言:彈藥充足,Python沖鋒!

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

一個迷你框架

下面以比較典型的通用爬蟲為例,分析其工程要點,設計并實現一個迷你框架。架構圖如下:

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

代碼結構:

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

config_load.py 配置文件加載

crawl_thread.py 爬取線程

mini_spider.py 主線程

spider.conf 配置文件

url_table.py url隊列、url表

urls.txt 種子url集合

webpage_parse.py 網頁分析

webpage_save.py 網頁存儲

看看配置文件里有什么內容:

spider.conf

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

url_table.py

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

3. 記錄哪些網頁已經下載過的小本本——URL表。

在互聯網上,一個網頁可能被多個網頁中的超鏈接所指向。這樣在遍歷互聯網這張圖的時候,這個網頁可能被多次訪問到。為了防止一個網頁被下載和解析多次,需要一個URL表記錄哪些網頁已經下載過。再遇到這個網頁的時候,我們就可以跳過它。

crawl_thread.py

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

5. 頁面分析模塊

從網頁中解析出URLs或者其他有用的數據。這個是上期重點介紹的,可以參考之前的代碼。

6. 頁面存儲模塊

保存頁面的模塊,目前將文件保存為文件,以后可以擴展出多種存儲方式,如mysql,mongodb,hbase等等。

webpage_save.py

爬虫凶猛:爬支付宝、爬微信、窃取数据/编程实战(2):爬虫架构

 

整個框架已經清晰了奧,不要小看它呢,不管是多么復雜的框架都是在這些基本要素上擴展出來的。

希望能夠幫助大家打下一定的基礎。請多留言,多探討。

記得關注我+轉發此文奧,愿能夠幫助更多正在學習Python的小伙伴!

原文地址:https://www.cnblogs.com/HT168/p/9372639.html