基于Scrapy框架的網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2023-10-06 10:51
百度公司是一家專注于搜索引擎和人工智能方向的大型企業(yè)。從最開始的搜索引擎主業(yè),到后來業(yè)務(wù)向各個(gè)方面拓展,現(xiàn)在已有數(shù)萬人的研發(fā)團(tuán)隊(duì),作者所在的部門是質(zhì)量工程中心,共有400人左右。作者的團(tuán)隊(duì)是涉及網(wǎng)絡(luò)輿情數(shù)據(jù)和語料庫方向的任務(wù),專門負(fù)責(zé)爬蟲技術(shù)方面的工作。該網(wǎng)絡(luò)爬蟲系統(tǒng)基于Scrapy框架,針對(duì)國內(nèi)流行的即時(shí)消息網(wǎng)站微博和脈脈,同時(shí)結(jié)合作者所在部門的項(xiàng)目要求,用于高效地獲取到網(wǎng)站的輿情語料數(shù)據(jù),其中涉及了分布式爬蟲、布隆過濾器算法、調(diào)度策略、反爬蟲策略、Redis緩存、代理池服務(wù)、Cookies池服務(wù)以及模擬登錄等關(guān)鍵技術(shù),這些技術(shù)的應(yīng)用顯著地提升了爬取的性能。該系統(tǒng)主要分為中間件模塊、實(shí)體管道模塊、爬蟲業(yè)務(wù)模塊、調(diào)度器模塊、代理池模塊以及Cookies池模塊六大部分。其中,中間件模塊包括代理池中間件、UA中間件、Cookies池中間件、Retry中間件等,專門對(duì)請(qǐng)求對(duì)象進(jìn)行處理。實(shí)體管道模塊包括微博實(shí)體管道和脈脈實(shí)體管道兩大部分,其主要功能包括字段信息定義、數(shù)據(jù)清洗、數(shù)據(jù)去重、格式化、存儲(chǔ)到數(shù)據(jù)庫等功能。爬蟲業(yè)務(wù)模塊包括模擬登錄、Request請(qǐng)求、Response解析、數(shù)據(jù)對(duì)象創(chuàng)建、...
【文章頁數(shù)】:97 頁
【學(xué)位級(jí)別】:碩士
【文章目錄】:
致謝
摘要
ABSTRACT
1 引言
1.1 項(xiàng)目背景及意義
1.1.1 技術(shù)背景
1.1.2 項(xiàng)目意義
1.2 國內(nèi)外同類技術(shù)情況
1.3 文章組織架構(gòu)
1.4 本章小結(jié)
2 相關(guān)技術(shù)介紹
2.1 爬蟲工作原理
2.2 Scrapy框架介紹
2.2.1 Scrapy的組成架構(gòu)
2.2.2 Scrapy的工作流程
2.2.3 Scrapy的擴(kuò)展工具
2.3 Bloom Filter算法
2.4 Selenium與WebDriver
2.5 Redis緩存
2.6 Proxy代理技術(shù)
2.7 MongoDB數(shù)據(jù)庫
2.8 XPath與BeautifulSoup
2.9 Faker
2.10 本章小結(jié)
3 系統(tǒng)的需求分析
3.1 需求綜述
3.2 系統(tǒng)的可行性分析
3.2.1 技術(shù)的可行性分析
3.2.2 經(jīng)濟(jì)的可行性分析
3.2.3 實(shí)踐操作的可行性分析
3.3 系統(tǒng)的功能性需求
3.3.1 業(yè)務(wù)邏輯部分
3.3.2 實(shí)體管道層部分
3.3.3 中間件層部分
3.3.4 調(diào)度器部分
3.3.5 服務(wù)層部分
3.4 系統(tǒng)的非功能性需求
3.5 本章小結(jié)
4 系統(tǒng)的概要設(shè)計(jì)
4.1 系統(tǒng)的設(shè)計(jì)原則與目標(biāo)
4.2 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
4.3 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)
4.4 數(shù)據(jù)庫設(shè)計(jì)
4.5 本章小結(jié)
5 系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
5.1 代理池服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)
5.1.1 獲取模塊的設(shè)計(jì)
5.1.2 檢測(cè)模塊的設(shè)計(jì)
5.1.3 存儲(chǔ)模塊的設(shè)計(jì)
5.1.4 接口模塊的設(shè)計(jì)
5.2 Cookies池服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)
5.2.1 存儲(chǔ)模塊的設(shè)計(jì)
5.2.2 生成模塊的設(shè)計(jì)
5.2.3 驗(yàn)證模塊的設(shè)計(jì)
5.2.4 接口模塊的設(shè)計(jì)
5.3 中間件模塊的設(shè)計(jì)與實(shí)現(xiàn)
5.3.1 User-Agent中間件
5.3.2 Cookies中間件
5.3.3 Proxy中間件
5.3.4 Retry中間件
5.4 實(shí)體管道模塊的設(shè)計(jì)與實(shí)現(xiàn)
5.4.1 微博的實(shí)體管道
5.4.2 脈脈的實(shí)體管道
5.5 微博爬蟲業(yè)務(wù)解析模塊
5.6 脈脈爬蟲業(yè)務(wù)解析模塊
5.7 調(diào)度器模塊的設(shè)計(jì)與實(shí)現(xiàn)
5.7.1 去重模塊的設(shè)計(jì)
5.7.2 調(diào)度模塊的設(shè)計(jì)
5.8 本章小結(jié)
6 系統(tǒng)測(cè)試
6.1 單元測(cè)試
6.2 功能性測(cè)試
6.3 非功能性測(cè)試
6.4 測(cè)試總結(jié)
6.5 本章小結(jié)
7 結(jié)論與展望
7.1 工作總結(jié)
7.2 工作展望
參考文獻(xiàn)
作者簡歷
學(xué)位論文數(shù)據(jù)集
本文編號(hào):3851712
【文章頁數(shù)】:97 頁
【學(xué)位級(jí)別】:碩士
【文章目錄】:
致謝
摘要
ABSTRACT
1 引言
1.1 項(xiàng)目背景及意義
1.1.1 技術(shù)背景
1.1.2 項(xiàng)目意義
1.2 國內(nèi)外同類技術(shù)情況
1.3 文章組織架構(gòu)
1.4 本章小結(jié)
2 相關(guān)技術(shù)介紹
2.1 爬蟲工作原理
2.2 Scrapy框架介紹
2.2.1 Scrapy的組成架構(gòu)
2.2.2 Scrapy的工作流程
2.2.3 Scrapy的擴(kuò)展工具
2.3 Bloom Filter算法
2.4 Selenium與WebDriver
2.5 Redis緩存
2.6 Proxy代理技術(shù)
2.7 MongoDB數(shù)據(jù)庫
2.8 XPath與BeautifulSoup
2.9 Faker
2.10 本章小結(jié)
3 系統(tǒng)的需求分析
3.1 需求綜述
3.2 系統(tǒng)的可行性分析
3.2.1 技術(shù)的可行性分析
3.2.2 經(jīng)濟(jì)的可行性分析
3.2.3 實(shí)踐操作的可行性分析
3.3 系統(tǒng)的功能性需求
3.3.1 業(yè)務(wù)邏輯部分
3.3.2 實(shí)體管道層部分
3.3.3 中間件層部分
3.3.4 調(diào)度器部分
3.3.5 服務(wù)層部分
3.4 系統(tǒng)的非功能性需求
3.5 本章小結(jié)
4 系統(tǒng)的概要設(shè)計(jì)
4.1 系統(tǒng)的設(shè)計(jì)原則與目標(biāo)
4.2 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
4.3 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)
4.4 數(shù)據(jù)庫設(shè)計(jì)
4.5 本章小結(jié)
5 系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
5.1 代理池服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)
5.1.1 獲取模塊的設(shè)計(jì)
5.1.2 檢測(cè)模塊的設(shè)計(jì)
5.1.3 存儲(chǔ)模塊的設(shè)計(jì)
5.1.4 接口模塊的設(shè)計(jì)
5.2 Cookies池服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)
5.2.1 存儲(chǔ)模塊的設(shè)計(jì)
5.2.2 生成模塊的設(shè)計(jì)
5.2.3 驗(yàn)證模塊的設(shè)計(jì)
5.2.4 接口模塊的設(shè)計(jì)
5.3 中間件模塊的設(shè)計(jì)與實(shí)現(xiàn)
5.3.1 User-Agent中間件
5.3.2 Cookies中間件
5.3.3 Proxy中間件
5.3.4 Retry中間件
5.4 實(shí)體管道模塊的設(shè)計(jì)與實(shí)現(xiàn)
5.4.1 微博的實(shí)體管道
5.4.2 脈脈的實(shí)體管道
5.5 微博爬蟲業(yè)務(wù)解析模塊
5.6 脈脈爬蟲業(yè)務(wù)解析模塊
5.7 調(diào)度器模塊的設(shè)計(jì)與實(shí)現(xiàn)
5.7.1 去重模塊的設(shè)計(jì)
5.7.2 調(diào)度模塊的設(shè)計(jì)
5.8 本章小結(jié)
6 系統(tǒng)測(cè)試
6.1 單元測(cè)試
6.2 功能性測(cè)試
6.3 非功能性測(cè)試
6.4 測(cè)試總結(jié)
6.5 本章小結(jié)
7 結(jié)論與展望
7.1 工作總結(jié)
7.2 工作展望
參考文獻(xiàn)
作者簡歷
學(xué)位論文數(shù)據(jù)集
本文編號(hào):3851712
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3851712.html
最近更新
教材專著