国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析

這篇具有很好參考價值的文章主要介紹了基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄
摘 要 1
一、 設(shè)計目的 2
二、 設(shè)計任務(wù)內(nèi)容 3
三、 常用爬蟲框架比較 3
四、網(wǎng)絡(luò)爬蟲程序總體設(shè)計 3
四、 網(wǎng)絡(luò)爬蟲程序詳細設(shè)計 4
4.1設(shè)計環(huán)境和目標分析 4
4.2爬蟲運行流程分析 5
爬蟲基本流程 5
發(fā)起請求 5
獲取響應(yīng)內(nèi)容 5
解析數(shù)據(jù) 5
保存數(shù)據(jù) 5
Request和Response 5
Request 5
Response 5
請求方式 5
GET 5
POST 5
URL 6
請求體 6
4.3控制模塊詳細設(shè)計 6
v = [] 8
v = [] 9
六、調(diào)試與測試 11
七、心得體會 12
參考文獻 13
在本爬蟲程序中共有三個模塊:
1.爬蟲調(diào)度端:啟動爬蟲,停止爬蟲,監(jiān)視爬蟲的運行情況
2.爬蟲模塊:包含三個小模塊,URL管理器,網(wǎng)頁下載器,網(wǎng)頁解析器。
(1)URL管理器:對需要爬取的URL和已經(jīng)爬取過的URL進行管理,可以從URL管理器中取出一個帶爬取的URL,傳遞給網(wǎng)頁下載器。
(2)網(wǎng)頁下載器:網(wǎng)頁下載器將URL指定的網(wǎng)頁下載下來,存儲成一個字符串,傳遞給網(wǎng)頁解析器。
(3)網(wǎng)頁解析器:網(wǎng)頁解析器解析傳遞的字符串,解析器不僅可以解析出需要爬取的數(shù)據(jù),而且還可以解析出每一個網(wǎng)頁只想其他網(wǎng)頁的URL,這些URL被解析出來會補充進URL管理器
3、數(shù)據(jù)輸出模塊:存儲爬取的數(shù)據(jù)
四、網(wǎng)絡(luò)爬蟲程序詳細設(shè)計
4.1設(shè)計環(huán)境和目標分析
設(shè)計環(huán)境
IDE:pycharm
Python版本:python3
目標分析
1、初始URL:www.tianqihoubao.com/aqi 先通過url獲取到網(wǎng)頁。
2、數(shù)據(jù)格式

3、頁面編碼:UTF—8
4.2爬蟲運行流程分析
爬蟲基本流程
發(fā)起請求
通過HTTP庫向目標服務(wù)器發(fā)送Request,Request內(nèi)可以包含額外的headers信息。
獲取響應(yīng)內(nèi)容
如果服務(wù)器正常響應(yīng),會返回Response, 里面包含的就是該頁面的內(nèi)容。
解析數(shù)據(jù)
內(nèi)容或許是HTML,可以用正則表達式、網(wǎng)頁解析庫進行解析。
或許是Json,可以直接轉(zhuǎn)換為Json對象解析。
保存數(shù)據(jù)
可以存儲為文本,也可以保存至數(shù)據(jù)庫,或其他特定類型文件。
Request和Response
Request
主機向服務(wù)器發(fā)送數(shù)據(jù)請求時的過程叫做HTTP Request
Response
服務(wù)器向主機返回數(shù)據(jù)的過程叫做HTTP Response
Request中包含的內(nèi)容
請求方式
常用的有GET,POST兩種類型。
GET
這種請求方式的參數(shù)都包含在網(wǎng)址里面。
POST
這種請求方式的參數(shù)包含在請求體中的form data中。相對安全。
URL
請求的網(wǎng)絡(luò)鏈接。
請求頭
包含請求時的頭部信息。如:User-Agent、Host、Cookies等。
User-Agent
指定瀏覽器。
請求體
GET請求下一般情況請求體中不會包含重要信息。
POST請求中包含重要信息。
Response中包含的內(nèi)容
響應(yīng)狀態(tài)
Status Code:200
即狀態(tài)碼,一般200表示響應(yīng)成功。
響應(yīng)頭
Response Headers
內(nèi)容類型,內(nèi)容長度,服務(wù)器信息,設(shè)置Cookie等。
響應(yīng)體
請求資源的內(nèi)容,如網(wǎng)頁源代碼,二進制數(shù)據(jù)等。
4.3控制模塊詳細設(shè)計

爬取代碼

import time
import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

citys = ['beijing', 'shanghai', 'guangzhou', 'shenzhen']

for i in range(len(citys)):

    time.sleep(5)

    for j in range(1, 13):
        time.sleep(5)
        # 請求2018年各月份的數(shù)據(jù)頁面
        url = 'http://www.tianqihoubao.com/aqi/' + citys[i] + '-2018' + str("%02d" % j) + '.html'
        # 有請求頭(鍵值對形式表示請求頭)
        response = requests.get(url=url, headers=headers)
        # html字符串創(chuàng)建BeautifulSoup對象
        soup = BeautifulSoup(response.text, 'html.parser')
        tr = soup.find_all('tr')

        for k in tr[1:]:
            td = k.find_all('td')
            # 日期
            Date = td[0].get_text().strip()
            # 質(zhì)量等級
            Quality_grade = td[1].get_text().strip()
            # AQI指數(shù)
            AQI = td[2].get_text().strip()
            # 當天AQI排名
            AQI_rank = td[3].get_text().strip()
            # PM2.5
            PM = td[4].get_text()
            # 數(shù)據(jù)存儲
            filename = 'air_' + citys[i] + '_2018.csv'
            with open(filename, 'a+', encoding='utf-8-sig') as f:
                f.write(Date + ',' + Quality_grade + ',' + AQI + ',' + AQI_rank + ',' + PM + '\n')
分析代碼
import numpy as np
import pandas as pd
from pyecharts import Line

citys = ['beijing', 'shanghai', 'guangzhou', 'shenzhen']
v = []
for i in range(4):
    filename = 'air_' + citys[i] + '_2018.csv'
    df = pd.read_csv(filename, header=None, names=["Date", "Quality_grade", "AQI", "AQI_rank", "PM"])

    dom = df[['Date', 'AQI']]
    list1 = []
    for j in dom['Date']:
        time = j.split('-')[1]
        list1.append(time)
    df['month'] = list1

    month_message = df.groupby(['month'])
    month_com = month_message['AQI'].agg(['mean'])
    month_com.reset_index(inplace=True)
    month_com_last = month_com.sort_index()

    v1 = np.array(month_com_last['mean'])
    v1 = ["{}".format(int(i)) for i in v1]
    v.append(v1)

attr = ["{}".format(str(i) + '月') for i in range(1, 12)]

line = Line("2018年北上廣深A(yù)QI全年走勢圖", title_pos='center', title_top='0', width=800, height=400)
line.add("北京", attr, v[0], line_color='red', legend_top='8%')
line.add("上海", attr, v[1], line_color='purple', legend_top='8%')
line.add("廣州", attr, v[2], line_color='blue', legend_top='8%')
line.add("深圳", attr, v[3], line_color='orange', legend_top='8%')
line.render("2018年北上廣深A(yù)QI全年走勢圖.html")

import numpy as np
import pandas as pd
from pyecharts import Pie, Grid

citys = ['beijing', 'shanghai', 'guangzhou', 'shenzhen']
v = []
attrs = []
for i in range(4):
    filename = 'air_' + citys[i] + '_2018.csv'
    df = pd.read_csv(filename, header=None, names=["Date", "Quality_grade", "AQI", "AQI_rank", "PM"])

    rank_message = df.groupby(['Quality_grade'])
    rank_com = rank_message['Quality_grade'].agg(['count'])
    rank_com.reset_index(inplace=True)
    rank_com_last = rank_com.sort_values('count', ascending=False)

    attr = rank_com_last['Quality_grade']
    attr = np.array(rank_com_last['Quality_grade'])
    attrs.append(attr)
    v1 = rank_com_last['count']
    v1 = np.array(rank_com_last['count'])
    v.append(v1)

pie1 = Pie("北京", title_pos="28%", title_top="24%")
pie1.add("", attrs[0], v[0], radius=[25, 40], center=[30, 27], legend_pos="27%", legend_top="51%", legend_orient="horizontal",)

pie2 = Pie("上海", title_pos="58%", title_top="24%")
pie2.add("", attrs[1], v[1], radius=[25, 40], center=[60, 27], is_label_show=False, is_legend_show=False)

pie3 = Pie("廣州", title_pos='28%', title_top='77%')
pie3.add("", attrs[2], v[2], radius=[25, 40], center=[30, 80], is_label_show=False, is_legend_show=False)

pie4 = Pie("深圳", title_pos='58%', title_top='77%')
pie4.add("", attrs[3], v[3], radius=[25, 40], center=[60, 80], is_label_show=False, is_legend_show=False)

grid = Grid("2018年北上廣深全年空氣質(zhì)量情況", width=1200)
grid.add(pie1)
grid.add(pie2)
grid.add(pie3)
grid.add(pie4)
grid.render('2018年北上廣深全年空氣質(zhì)量情況.html')

基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析
基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析
基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析
基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析
基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析
基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析
基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析
基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析文章來源地址http://www.zghlxwxcb.cn/news/detail-476550.html

到了這里,關(guān)于基于Python的網(wǎng)絡(luò)爬蟲爬取天氣數(shù)據(jù)可視化分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python爬取城市天氣數(shù)據(jù),并作數(shù)據(jù)可視化

    Python爬取城市天氣數(shù)據(jù),并作數(shù)據(jù)可視化

    1.爬取廣惠河深2022-2024年的天氣數(shù)據(jù)? 爬取的數(shù)據(jù)如下圖所示? ? ?2.讀取csv文件 3.去除多余字符 4.分割星期和日期 5.篩選出城市數(shù)據(jù)子集。其中包含了四個城市在不同天氣下的天數(shù)統(tǒng)計結(jié)果。 ? ?6.將原有的天氣類型按照劃分 7.對城市的天氣數(shù)據(jù)按照新天氣列分組后,

    2024年02月10日
    瀏覽(24)
  • Python網(wǎng)絡(luò)爬蟲爬取招聘數(shù)據(jù)(利用python簡單零基礎(chǔ))可做可視化

    Python網(wǎng)絡(luò)爬蟲爬取招聘數(shù)據(jù)(利用python簡單零基礎(chǔ))可做可視化

    身為一個求職者,或者說是對于未來的職業(yè)規(guī)劃還沒明確目標的大學(xué)生來說,獲取各大招聘網(wǎng)上的數(shù)據(jù)對我們自身的發(fā)展具有的幫助作用,本文章就簡答零基礎(chǔ)的來介紹一下如何爬取招聘數(shù)據(jù)。 我們以東莞的Python數(shù)據(jù)分析師這個職位來做一個簡單的分析,頁面如下圖所示:

    2024年02月03日
    瀏覽(27)
  • python爬取天氣數(shù)據(jù)并做可視化分析

    python爬取天氣數(shù)據(jù)并做可視化分析

    歷史天氣數(shù)據(jù)schema { ‘當日信息’:\\\'2023-01-01 星期日\\\', \\\'最高氣溫\\\': 8℃\\\'\\\', \\\'最低氣溫\\\': \\\'5℃\\\', ‘天氣’: \\\'多云\\\', \\\'風(fēng)向信息\\\':\\\'北風(fēng) 3級\\\' } 1.導(dǎo)入庫 2.對程序進行偽裝 3.抓取天氣數(shù)據(jù) 在數(shù)據(jù)存儲前,對數(shù)據(jù)進行處理,便于后期的數(shù)據(jù)分析。將上面的“當天信息”字段拆分為“日期”

    2024年02月04日
    瀏覽(24)
  • 畢業(yè)設(shè)計:python全國天氣氣象數(shù)據(jù)爬取分析可視化系統(tǒng)+大屏+大數(shù)據(jù)(源碼+文檔)

    畢業(yè)設(shè)計:python全國天氣氣象數(shù)據(jù)爬取分析可視化系統(tǒng)+大屏+大數(shù)據(jù)(源碼+文檔)

    博主介紹:?全網(wǎng)粉絲10W+,前互聯(lián)網(wǎng)大廠軟件研發(fā)、集結(jié)碩博英豪成立工作室。專注于計算機相關(guān)專業(yè)畢業(yè)設(shè)計項目實戰(zhàn)6年之久,選擇我們就是選擇放心、選擇安心畢業(yè)? 畢業(yè)設(shè)計:2023-2024年計算機專業(yè)畢業(yè)設(shè)計選題匯總(建議收藏) 畢業(yè)設(shè)計:2023-2024年最新最全計算機專

    2024年02月02日
    瀏覽(43)
  • 【數(shù)據(jù)可視化】通過使用網(wǎng)絡(luò)爬蟲對數(shù)據(jù)爬取并進行可視化分析

    【數(shù)據(jù)可視化】通過使用網(wǎng)絡(luò)爬蟲對數(shù)據(jù)爬取并進行可視化分析

    ??本次項目所爬取的網(wǎng)頁為柳州職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院的超星學(xué)習(xí)通課程中心。在該網(wǎng)頁中可以查看到電子信息工程學(xué)院歷年的超星課程創(chuàng)建情況,還可以進入到課程界面查看相應(yīng)的教學(xué)資源。 ??在該網(wǎng)頁中,詳細記錄了課程序號、課程名稱、課程鏈接、所屬院

    2024年02月04日
    瀏覽(17)
  • python爬蟲爬取電影數(shù)據(jù)并做可視化

    python爬蟲爬取電影數(shù)據(jù)并做可視化

    1、發(fā)送請求,解析html里面的數(shù)據(jù) 2、保存到csv文件 3、數(shù)據(jù)處理 4、數(shù)據(jù)可視化 需要用到的庫: 注意:后續(xù)用到分詞庫jieba以及詞頻統(tǒng)計庫nltk? ? 解釋器: python? 3.10.5 編輯器:VsCode -jupyter-notebook 使用ipynb文件的擴展名 vscode會提示安裝jupyter插件 效果: 注意:使用jieba分詞,

    2024年02月07日
    瀏覽(25)
  • 基于python淘寶商品數(shù)據(jù)爬蟲分析可視化系統(tǒng) 網(wǎng)絡(luò)爬蟲+Flask框架+MySQL數(shù)據(jù)庫 大數(shù)據(jù) 畢業(yè)設(shè)計

    基于python淘寶商品數(shù)據(jù)爬蟲分析可視化系統(tǒng) 網(wǎng)絡(luò)爬蟲+Flask框架+MySQL數(shù)據(jù)庫 大數(shù)據(jù) 畢業(yè)設(shè)計

    python語言、Flask框架、淘寶商品數(shù)據(jù)、selenium網(wǎng)絡(luò)爬蟲、MySQL數(shù)據(jù)庫、數(shù)據(jù)分析、Echarts可視化大數(shù)據(jù)畢業(yè)設(shè)計、爬取 Selenium網(wǎng)絡(luò)爬蟲淘寶商品數(shù)據(jù)可視化系統(tǒng)是一個基于Python和Selenium的Web爬蟲應(yīng)用程序,可以實現(xiàn)對淘寶上特定商品的價格、銷量、評價等數(shù)據(jù)進行自動化抓

    2024年02月16日
    瀏覽(36)
  • Flask+echarts爬取天氣預(yù)報數(shù)據(jù)并實現(xiàn)可視化

    Flask+echarts爬取天氣預(yù)報數(shù)據(jù)并實現(xiàn)可視化

    右鍵新建一個crawl.py文件,代碼如下,將爬取到的數(shù)據(jù)存儲到tianqi.txt文件中, 右鍵新建一個flask01.py的文件,對爬取到的數(shù)據(jù)進行讀取,并轉(zhuǎn)換為列表類型,傳遞給index.html頁面,echarts的圖表樣例負責(zé)接收并渲染,代碼如下, 在根目錄下,新建一個名為templates目錄,該目錄名

    2024年02月11日
    瀏覽(26)
  • Python項目開發(fā):Flask基于Python的天氣數(shù)據(jù)可視化平臺

    Python項目開發(fā):Flask基于Python的天氣數(shù)據(jù)可視化平臺

    目錄 步驟一:數(shù)據(jù)獲取 步驟二:設(shè)置Flask應(yīng)用程序 步驟三:處理用戶輸入和數(shù)據(jù)可視化 步驟四:渲染HTML模板 總結(jié) 在這個數(shù)字化時代,數(shù)據(jù)可視化已經(jīng)成為我們理解和解釋信息的重要手段。在這個項目中,我們將使用Python語言來開發(fā)一個基于Flask框架的天氣數(shù)據(jù)可視化平臺

    2024年02月09日
    瀏覽(33)
  • 基于python天氣數(shù)據(jù)的預(yù)測分析及可視化系統(tǒng) 畢業(yè)設(shè)計開題報告

    ?博主介紹 :《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計教育和輔導(dǎo)。 所有項目都配有從入門到精通的基礎(chǔ)知識視頻課程,免費 項目配有對應(yīng)開發(fā)文檔、開題報告、任務(wù)書、PPT、論文模版

    2024年02月04日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包