日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬虫实战之 爬取全国理工类大学数量+数据可视化

發布時間:2024/1/1 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫实战之 爬取全国理工类大学数量+数据可视化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上次爬取高考分數線這部分收了個尾,今天咱們來全面爬取全國各省有多少所理工類大學,并簡單實現一個數據可視化。話不多說,咱們開始吧。

第一步,拿到url地址
第二步,獲取高校數據
第三步,地圖可視化
第四步,調用函數實現需求

第一步,拿到url地址

這一部分需要導入這些庫

import requests

首先,拿到初始的url地址:

url_start='https://gkcx.eol.cn/school/search?recomschprop=%E7%90%86%E5%B7%A5'

將“理工”進行轉碼處理,就變成了url后面那樣。

進入后頁面如下:

可以看到,共匹配到866所學校,共有44頁。感覺能繼續往下爬了嗎?別急,接著往下看。

我們先進行常規的get請求,發現得不到網頁信息。同時發現,這些高校數據并不在網頁源代碼中,怎么辦呢?

如果數據不在當前的url當中要通過抓包工具network來分析數據,再通過search來查詢我們需要的數據

我們先搜索關鍵字“重慶工程學院”,可以看到response獲取信息成功切換到Headers處,能夠確定請求的方法為post請求,得到數據請求的真正url地址


這就是真正的url地址

url='https://api.eol.cn/gkcx/api/?access_token=&admissions=&central=&department=&dual_class=&f211=&f985=&is_dual_class=&keyword=&page=1&province_id=&request_type=1&school_type=&signsafe=&size=20&sort=view_total&type=5001&uri=apigkcx/api/school/hotlists'

其中page參數代表頁數,可以看到,page=1,以第1頁為例開始爬。通過遍歷即可獲取所有數據。其中post方式需提交一個data表單

這一部分代碼如下

# 獲取44頁的url i = 1 j = 0 links = [] while i <= 44:link = 'https://api.eol.cn/gkcx/api/?access_token=&admissions=&central=&department=&dual_class=&f211=&f985=&i s_dual_class=&keyword=&page={}&province_id=&request_type=1&school_type=&signsafe=&size=20&sort=view_ total&type=5001&uri=apigkcx/api/school/hotlists'.format(i)links = links + [link]i += 1

獲取到的url列表如下,共有44條:

之后的代碼如下:

# 將之前列表中的url傳過來 def geturl(url):header={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36','Referer': 'http://gaokao.eol.cn/' }data = { 'access_token':'', 'admissions':'', 'central':'', 'department':'', 'dual_class':'', 'f211':'', 'f985':'', 'is_dual_class':'', 'keyword':'', 'page': '1', 'province_id':'', 'request_type': '1', 'school_type':'', 'signsafe':'', 'size': '20', 'sort': 'view_total', 'type': '5001', 'uri': 'apigkcx/api/school/hotlists' }response=requests.post(url,headers=header,data=data)response.encoding = 'utf-8'xinxi = response.textreturn xinxi

第二步,獲取高校數據

這一部分需要導入這些庫

import json from collections import Counter # 尋找重復值

運行以上代碼,可以發現所有數據存放在一個字典中

現在我們需要做的,就是把高校名稱、城市字段提取出來。這一頁所有信息都存放在名為data的字典中,現在把字典拿出來。

由于數據是屬于json類型,所以要進行相應的轉換(轉化成python數據要用json.loads()命令),以便提取數據。

提取數據

def getdata(xinxi):shuju = json.loads(xinxi)['data']['item']

可以發現,現在的數據存放到了一個列表中,咱們繼續提取。

# 大學名稱college = [i.get('name') for i in shuju]# 所在省份province = [i.get('province_name') for i in shuju]# 所在城市city = [i.get('city_name') for i in shuju]

現在要找到各省份的理工類高校數量

# 尋找同一省份的學校個數a = dict(Counter(province))# 尋找重復項目和重復個數b = {key:value for key,value in a.items() if value >= 1}return b

第三步,地圖可視化

上面我們得到了省份及理工類大學數量,現在需要把分布地圖繪制出來。需要注意的是,要把pyecharts版本切換為1.6.2
這一部分需要導入這些庫

from pyecharts import options as opts from pyecharts.charts import Map

具體代碼如下:

def painting(b):xuexiao = list(zip(b.keys(),b.values()))c = (Map(init_opts=opts.InitOpts(width="1000px", height="600px")) #可切換主題.set_global_opts(title_opts=opts.TitleOpts(title="各省理工類高校分布圖 單位:個"),visualmap_opts=opts.VisualMapOpts(min_=0,max_=100,range_text = ['理工類高校數量區間:', ''], #分區間is_piecewise=True, #定義圖例為分段型,默認為連續的圖例pos_top= "middle", #分段位置pos_left="left",orient="vertical",split_number=10 #分成10個區間)).add("高校數量",xuexiao,maptype="china").render("理工類高校分布圖.html") )return c

第四步,調用函數實現需求

前面三步中,咱們通過函數來實現了爬取數據和地圖可視化的功能。現在需要在最后加上一個main方法來調用前面的函數,從而實現最終需求。

if __name__ == '__main__':# 1.獲取每一個列表頁url及源碼數據xinxi = [geturl(links[i]) for i in range(44)]# 2.獲取每一頁的學校數據b = [getdata(xinxi[i]) for i in range(44)]print(b)# 3.進行數據整理(將每一頁的數據匯總)i = 0while i <= 42:for k,v in b[i].items():if k in b[i+1].keys():b[i+1][k] += velse:b[i+1][k] = vi += 1# print(b[43])c = b[43] # 將匯總結果賦值給c# 4.繪出地圖xuexiao = list(zip(c.keys(),c.values()))# print(xuexiao)map = painting(c)

其中,第2步的結果如下,此時各省份數量還未匯總:

第3步的結果如下,此時各省份數量已經匯總完畢:

第4步的結果如下,此時是打包好的將要用于繪圖的數據

運行整個程序后,得到了這樣一幅地圖,咱們實現了地圖可視化:

至此,咱們已經統計出全國的理工類大學在各省份的數量分布,實現了爬蟲和數據可視化的完美結合。
?
?
?
第一篇:Python的要點(搭建環境、安裝配置、第三方庫導入方法詳細過程)
第二篇:Python爬蟲初探(一)——了解爬蟲
第三篇:Python爬蟲初探(二)——爬蟲的請求模塊
第四篇:Python爬蟲初探(三)——爬蟲之正則表達式介紹
第五篇:Python爬蟲初探(四)——爬蟲之正則表達式實戰(爬取圖片)
第六篇:Python爬蟲初探(五)——爬蟲之xpath與lxml庫的使用
第七篇:Python爬蟲初探(六)——爬蟲之xpath實戰(爬取高考分數線信息)
第八篇:Python爬蟲初探(七)——爬蟲之Beautifulsoup4介紹(Ⅰ)
第九篇:Python爬蟲初探(八)——爬蟲之Beautifulsoup4介紹(Ⅱ)
第十篇:Python爬蟲初探(九)——爬蟲之Beautifulsoup4實戰(爬取豆瓣信息)

總結

以上是生活随笔為你收集整理的Python爬虫实战之 爬取全国理工类大学数量+数据可视化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩在线中文字幕 | 国产视频不卡一区 | 俺来也俺也啪www色 欧洲一区二区视频 | 色一五月 | 337p亚洲精品色噜噜噜 | 色小说在线 | 在线免费看91 | 狠狠躁夜夜躁av无码中文幕 | 日韩成人精品在线 | av我不卡 | 九九99视频| 国产三级视频 | 看全色黄大色黄大片女一次牛 | 亚洲欧美另类在线视频 | 麻豆tv在线观看 | 中文字幕色哟哟 | 蜜桃tv一区二区三区 | 日韩a级一片 | 99久久毛片 | 免费成人黄色网址 | 91插插插插插 | 精品国产乱码久久久久久108 | 国产爽爽爽 | 亚洲网站在线 | 大奶子情人 | av影库| 亚洲黄色免费网站 | 两性囗交做爰视频 | 五月综合激情网 | 日本欧美久久久久免费播放网 | 女性生殖扒开酷刑vk | 国产午夜三级 | 日韩影视在线 | 亚洲无限av | 欧美福利视频 | 久久久久在线视频 | 极品美女无套呻吟啪啪 | 国产99久 | 日韩视频一区二区三区四区 | 婷婷四房播播 | 丝袜制服中文字幕 | 在线免费视频一区二区 | 成人免费视频国产免费网站 | 日韩一级片| 国产区小视频 | aaa一级片 | 国产精品久久久久毛片大屁完整版 | 日韩高清一级片 | 亚洲va中文字幕 | 69视频入口| 久久com| 国内外免费激情视频 | 美女在线播放 | 精品人妻少妇AV无码专区 | 国产在线一区二 | 国产精品国产馆在线真实露脸 | 免费成人在线网站 | 富婆如狼似虎找黑人老外 | 成年人一级片 | 毛片毛片毛片毛片毛片 | 欧美日本另类 | 欧美嫩交| 午夜写真片福利电影网 | 久久av综合网| 免费在线国产 | 999毛片| 四虎网站在线观看 | 91看片在线看 | 91成年人网站 | 国产系列在线 | 欧美久久综合网 | 少妇乱淫| 亚洲蜜臀av一区二区三区 | 黄网站免费看 | av爽妇网| 这里只有精品国产 | 韩国bj大尺度vip福利网站 | 亚洲一区视频在线 | 日韩中文字幕精品视频 | 精品视频一二三 | 黑人黄色大片 | 在线观看免费黄色 | 999国产视频 | 日本理论视频 | 欧美日韩国产一区二区三区在线观看 | 国产黄色一级大片 | 超碰免费成人 | 日韩特黄毛片 | 91视频综合网| 日韩成人短视频 | 国产亚洲精品码 | 今天高清视频在线观看视频 | 久久国产精品久久精品国产 | 欧美日韩亚洲精品一区二区 | 涩涩涩涩涩涩涩涩涩 | 欧美成人乱码一区二区三区 | 老司机在线免费视频 | 一本高清dvd在线播放 | av毛片观看 |