基于Python的網(wǎng)絡(luò)爬蟲(chóng)爬取天氣數(shù)據(jù)可視化分析
目錄
摘 要 1
一、 設(shè)計(jì)目的 2
二、 設(shè)計(jì)任務(wù)內(nèi)容 3
三、 常用爬蟲(chóng)框架比較 3
四、網(wǎng)絡(luò)爬蟲(chóng)程序總體設(shè)計(jì) 3
四、 網(wǎng)絡(luò)爬蟲(chóng)程序詳細(xì)設(shè)計(jì) 4
4.1設(shè)計(jì)環(huán)境和目標(biāo)分析 4
4.2爬蟲(chóng)運(yùn)行流程分析 5
爬蟲(chóng)基本流程 5
發(fā)起請(qǐng)求 5
獲取響應(yīng)內(nèi)容 5
解析數(shù)據(jù) 5
保存數(shù)據(jù) 5
Request和Response 5
Request 5
Response 5
請(qǐng)求方式 5
GET 5
POST 5
URL 6
請(qǐng)求體 6
4.3控制模塊詳細(xì)設(shè)計(jì) 6
v = [] 8
v = [] 9
六、調(diào)試與測(cè)試 11
七、心得體會(huì) 12
參考文獻(xiàn) 13
在本爬蟲(chóng)程序中共有三個(gè)模塊:
1.爬蟲(chóng)調(diào)度端:?jiǎn)?dòng)爬蟲(chóng),停止爬蟲(chóng),監(jiān)視爬蟲(chóng)的運(yùn)行情況
2.爬蟲(chóng)模塊:包含三個(gè)小模塊,URL管理器,網(wǎng)頁(yè)下載器,網(wǎng)頁(yè)解析器。
(1)URL管理器:對(duì)需要爬取的URL和已經(jīng)爬取過(guò)的URL進(jìn)行管理,可以從URL管理器中取出一個(gè)帶爬取的URL,傳遞給網(wǎng)頁(yè)下載器。
(2)網(wǎng)頁(yè)下載器:網(wǎng)頁(yè)下載器將URL指定的網(wǎng)頁(yè)下載下來(lái),存儲(chǔ)成一個(gè)字符串,傳遞給網(wǎng)頁(yè)解析器。
(3)網(wǎng)頁(yè)解析器:網(wǎng)頁(yè)解析器解析傳遞的字符串,解析器不僅可以解析出需要爬取的數(shù)據(jù),而且還可以解析出每一個(gè)網(wǎng)頁(yè)只想其他網(wǎng)頁(yè)的URL,這些URL被解析出來(lái)會(huì)補(bǔ)充進(jìn)URL管理器
3、數(shù)據(jù)輸出模塊:存儲(chǔ)爬取的數(shù)據(jù)
四、網(wǎng)絡(luò)爬蟲(chóng)程序詳細(xì)設(shè)計(jì)
4.1設(shè)計(jì)環(huán)境和目標(biāo)分析
設(shè)計(jì)環(huán)境
IDE:pycharm
Python版本:python3
目標(biāo)分析
1、初始URL:www.tianqihoubao.com/aqi 先通過(guò)url獲取到網(wǎng)頁(yè)。
2、數(shù)據(jù)格式
3、頁(yè)面編碼:UTF—8
4.2爬蟲(chóng)運(yùn)行流程分析
爬蟲(chóng)基本流程
發(fā)起請(qǐng)求
通過(guò)HTTP庫(kù)向目標(biāo)服務(wù)器發(fā)送Request,Request內(nèi)可以包含額外的headers信息。
獲取響應(yīng)內(nèi)容
如果服務(wù)器正常響應(yīng),會(huì)返回Response, 里面包含的就是該頁(yè)面的內(nèi)容。
解析數(shù)據(jù)
內(nèi)容或許是HTML,可以用正則表達(dá)式、網(wǎng)頁(yè)解析庫(kù)進(jìn)行解析。
或許是Json,可以直接轉(zhuǎn)換為Json對(duì)象解析。
保存數(shù)據(jù)
可以存儲(chǔ)為文本,也可以保存至數(shù)據(jù)庫(kù),或其他特定類(lèi)型文件。
Request和Response
Request
主機(jī)向服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求時(shí)的過(guò)程叫做HTTP Request
Response
服務(wù)器向主機(jī)返回?cái)?shù)據(jù)的過(guò)程叫做HTTP Response
Request中包含的內(nèi)容
請(qǐng)求方式
常用的有GET,POST兩種類(lèi)型。
GET
這種請(qǐng)求方式的參數(shù)都包含在網(wǎng)址里面。
POST
這種請(qǐng)求方式的參數(shù)包含在請(qǐng)求體中的form data中。相對(duì)安全。
URL
請(qǐng)求的網(wǎng)絡(luò)鏈接。
請(qǐng)求頭
包含請(qǐng)求時(shí)的頭部信息。如:User-Agent、Host、Cookies等。
User-Agent
指定瀏覽器。
請(qǐng)求體
GET請(qǐng)求下一般情況請(qǐng)求體中不會(huì)包含重要信息。
POST請(qǐng)求中包含重要信息。
Response中包含的內(nèi)容
響應(yīng)狀態(tài)
Status Code:200
即狀態(tài)碼,一般200表示響應(yīng)成功。
響應(yīng)頭
Response Headers
內(nèi)容類(lèi)型,內(nèi)容長(zhǎng)度,服務(wù)器信息,設(shè)置Cookie等。
響應(yīng)體
請(qǐng)求資源的內(nèi)容,如網(wǎng)頁(yè)源代碼,二進(jìn)制數(shù)據(jù)等。
4.3控制模塊詳細(xì)設(shè)計(jì)
爬取代碼













