国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python爬取歷年高考分數線,幫你預測2018年高考分數線

開發 后端
高考已經結束了,相信絕大部分同學都在放松自己了,畢竟壓抑了這么久?,F在雖然距離高考放榜還有一段時間,可能有一些同學已經迫不及待地想知道自己考的怎樣。因此,現在就來爬取高考網上的近幾年高考分數線,看一下近幾年分數線的變化趨勢,從而心里面有個底,這樣才能夠更加放松的去嗨皮。

[[232744]]

粉絲獨白

高考已經結束了,相信絕大部分同學都在放松自己了,畢竟壓抑了這么久?,F在雖然距離高考放榜還有一段時間,可能有一些同學已經迫不及待地想知道自己考的怎樣。因此,現在就來爬取高考網上的近幾年高考分數線,看一下近幾年分數線的變化趨勢,從而心里面有個底,這樣才能夠更加放松的去嗨皮。

使用的工具庫

  • beautifulsoup
  • mongodb
  • echarts

1.總體思路

高考網上,可以查看各省的分數線,其中文理科都有2009-2017年的數據,所以可以直接爬取這些數據下來存到MongoDB中,然后再使用echarts進行繪圖展示,從而可以更加直觀的看到高考分數線的變化趨勢。

2.爬取數據

(1)獲取各省的分數線信息

有兩種方法可以達到這個目的

1).通過拼接URL鏈接切換省份,可以得出鏈接的變化規律:只要替換省份的拼音上去就可以請求到:

http://www.gaokao.com/guangdong/fsx/ 

http://www.gaokao.com/shanghai/fsx/

推薦使用pypinyin模塊——漢字拼音轉換模塊/工具。直接使用lazy_pinyin方法就可以得到各省的拼音。由于返回的是列表,所以還需要處理一下才能使用。 

  1. >>> from pypinyin import lazy_pinyin  
  2. >>> lazy_pinyin('北京' 
  3. ['bei''jing'

2).通過獲取地區導航中的各省鏈接,直接得到URL: 

獲取各省份的鏈接: 

  1. # 獲取省份及鏈接  
  2. pro_link = []  
  3. def get_provice(url):  
  4.    web_data = requests.get(url, headers=header)  
  5.    soup = BeautifulSoup(web_data.content, 'lxml' 
  6.    provice_link = soup.select('.area_box > a' 
  7.    for link in provice_link:  
  8.        href = link['href' 
  9.        provice = link.select('span')[0].text  
  10.        data = {  
  11.            'href': href,  
  12.            'provice': provice  
  13.        }  
  14.        provice_href.insert_one(data)#存入數據庫  
  15.        pro_link.append(href) 

(2)爬取分數線

接下來就可以開始爬取分數線了,通過審查元素(如下圖),直接使用beautifulsoup來過濾內容。 

 

  1. # 獲取分數線  
  2. def get_score(url):  
  3.    web_data = requests.get(url, headers=header)  
  4.    soup = BeautifulSoup(web_data.content, 'lxml' 
  5.    # 獲取省份信息  
  6.    provice = soup.select('.col-nav span')[0].text[0:-5]  
  7.    # 獲取文理科  
  8.    categories = soup.select('h3.ft14' 
  9.    category_list = []  
  10.    for item in categories:  
  11.        category_list.append(item.text.strip().replace(' '''))#替換空格  
  12.    # 獲取分數  
  13.    tables = soup.select('h3 ~ table' 
  14.    for indextable in enumerate(tables):  
  15.        tr = table.find_all('tr', attrs={'class': re.compile('^c_\S*')})#使用正則匹配  
  16.        for j in tr:  
  17.            td = j.select('td' 
  18.            score_list = []  
  19.            for k in td:  
  20.                # 獲取每年的分數  
  21.                if 'class' not in k.attrs:  
  22.                    score = k.text.strip()  
  23.                    score_list.append(score)  
  24.  
  25.                # 獲取分數線類別  
  26.                elif 'class' in k.attrs:  
  27.                    score_line = k.text.strip()  
  28.  
  29.                score_data = {  
  30.                    'provice': provice.strip(),#省份  
  31.                    'category': category_list[index],#文理科分類  
  32.                    'score_line': score_line,#分數線類別  
  33.                    'score_list': score_list#分數列表  
  34.                }  
  35.            score_detail.insert_one(score_data)#插入數據庫  

3.開始爬取

由于有30多個省份,所以這里使用多線程來爬取,可以提高爬取效率。  

  1. if __name__ == '__main__' 
  2.  
  3.    header = {  
  4.        'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0' 
  5.        'Connection''keep - alive'  
  6.        }  
  7.    url = 'http://www.gaokao.com/guangdong/fsx/'  
  8.  
  9.    get_provice(url)  
  10.    pool = Pool()  
  11.    pool.map(get_score, [i for i in pro_link])#使用多線程  

使用多線程爬取的話,不用1分鐘就可以爬完所有的數據了。看,多線程可牛逼了,叉會腰先。

4.數據可視化

爬取數據只是***步,接下來就要對數據進行處理展示了。從mongodb 中查找出數據,對數據進行清洗整理,由于我這里的pyecharts有點問題,所以使用echarts進行展示。

1).篩選省份等信息

直接通過mongodb的find函數,限制查找的內容。

  1. import pymongo  
  2. import charts  
  3. client = pymongo.MongoClient('localhost', 27017)  
  4. gaokao = client['gaokao' 
  5. score_detail = gaokao['score_detail' 
  6.  
  7. # 篩選分數線、省份、文理科  
  8. def get_score(line,pro,cate):  
  9.    score_list=[]  
  10.    for i in score_detail.find({"$and":[{"score_line":line},{"provice":pro},{'category': cate}]}):  
  11.        score_list = i['score_list' 
  12.        score_list.remove('-')#去掉沒有數據的欄目  
  13.        score_list = list(map(int, score_list))  
  14.        score_list.reverse()  
  15.        return score_list 

2).定義相關數據 

  1. # 獲取文理科分數  
  2. line = '一本'  
  3. pro = '北京'  
  4. cate_wen = '文科'  
  5. cate_li = '理科'  
  6. wen=[]  
  7. li = []  
  8. wen=get_score(line,pro,cate_wen)#文科  
  9. li=get_score(line,pro,cate_li)#理科 
  10.  
  11.  
  12. # 定義年份  
  13. year = [2017,2016,2015,2014,2013,2012,2011,2010,2009]  
  14. year.reverse()  

3).折線圖展示 

  1. series = [  
  2.    {  
  3.    'name''文 科', 
  4.    'data': wen,  
  5.    'type''line'  
  6. }, {  
  7.    'name''理科' 
  8.    'data': li,  
  9.    'type''line' 
  10.    'color':'#ff0066'  
  11.  
  12.         ]  
  13. options = {  
  14.    'chart'   : {'zoomType':'xy'},  
  15.    'title'   : {'text''{}省{}分數線'.format(pro,line)},  
  16.    'subtitle': {'text''Source: gaokao.com'},  
  17.    'xAxis'   : {'categories'year},  
  18.    'yAxis'   : {'title': {'text''score'}}  
  19.    }  
  20.  
  21. charts.plot(series, options=options,show='inline' 

這樣就可以得到下面的歷年分數線趨勢圖了。當然,可以修改get_score的參數就可以的到其他省份的信息了。

5.預測分數線 

通過折線圖,可以大概的預測2018年北京高考一本的分數線:文科在550-560分之間;理科在530-540分之間。當然,這只是預測的,如果有特殊情況的話,可能波動會比較大。另外,還可以通過拉格朗日插值法求出今年的分數線,這樣比較準確,但是由于過程比較麻煩,所以這里只是目測而已。 

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2011-07-05 09:53:22

WPS

2019-06-28 15:54:49

大數據

2025-06-26 17:08:43

2020-07-06 09:45:37

Python高考工具

2015-06-15 15:41:56

高考考生特點

2009-01-18 11:06:50

軟考成績成績查詢2008下半年

2009-06-06 10:38:35

谷歌高考地圖大學信息

2009-02-18 21:45:39

軟考分數線2008下半年

2020-07-27 15:01:59

大數據人工智能高考志愿

2015-06-18 21:02:43

高考志愿IT高管專業

2022-11-16 12:13:15

2020-07-08 09:30:30

華為

2024-06-27 10:37:56

點贊
收藏

51CTO技術棧公眾號

97视频免费在线观看| 国产精品99久久精品| 亚洲欧美国产一区二区| 亚洲精品一区二区三区在线观看| 国内成+人亚洲+欧美+综合在线| 国产精品美女午夜爽爽| 91免费视频网站在线观看| 成人国产精品日本在线| 亚洲国产精品电影在线观看| 亚洲视频一二区| 九九国产精品视频| 日本91福利区| 成人性生交大片免费看96| 特黄国产免费播放| 成人精品网站在线观看| 亚洲一区在线视频观看| 在线精品一区二区| 日韩精品视频一区二区三区| 9i精品一二三区| 黑森林福利视频导航| 欧美黑人性猛交| 欧美一级二级三级乱码| 国产精品理论在线观看| 麻豆91精品91久久久的内涵| 最新欧美日韩亚洲| 亚洲欧美日韩网| 久久一二三国产| 亚洲国产欧美日韩在线观看第一区| 独立日3在线观看完整版| 成人欧美一区二区三区在线湿哒哒| 欧美自拍丝袜亚洲| 国产综合色产在线精品| 欧美第一在线视频| 成人频在线观看| 欧美日本韩国在线| 亚洲色图25p| 国产精品美女久久福利网站| 青青草国产成人a∨下载安卓| 麻豆av免费在线观看| 黄色污污在线观看| 青青久久av北条麻妃黑人| 在线观看亚洲精品| 精品亚洲成a人在线观看 | 国产精品久久久久久网站| 欧美日韩国产在线| 激情av综合网| 欧美一级色片| 三区四区电影在线观看| 国产黄色特级片| 国产日韩精品一区观看| 国产一区二区三区视频免费| 亚洲午夜精品一区二区三区他趣| 日本在线不卡视频一二三区| 成人三级av在线| 黄网站免费在线观看| 成年人深夜视频| 国产在线日韩在线| 这里只有精品视频| 欧美性猛交xxxx| 成人免费高清在线| 久久国产成人午夜av影院宅| 欧美91看片特黄aaaa| 中文在线二区| 搞av.com| av蓝导航精品导航| 欧美激情aaaa| 亚洲国产欧美日韩精品| 亚洲国产成人av网| 国产伦精品一区二区三区在线观看| 欧洲三级视频| 黄色成人在线观看网站| 国产高清视频在线播放| 三级a在线观看| 五月天国产一区| 国产伊人精品在线| 久久99亚洲热视| 亚洲高清福利视频| 欧美日韩中文字幕在线| 26uuu久久综合| 久久一区欧美| 国产一区二区观看| 欧美jizz18| 亚洲91av| 在线观看av片| 欧美日韩精品不卡| 免费在线看电影| 在线成人直播| 国产精品18久久久久久久久| 久久电影一区| 大西瓜av在线| 91久久精品在线| 色婷婷综合久久久久| 91精品国产日韩91久久久久久| 亚洲欧美乱综合| 成人av网在线| 久久国产精品亚洲77777| 欧美人与物videos另类xxxxx| 18禁免费无码无遮挡不卡网站| 在线看片你懂得| 国产乱码午夜在线视频| 欧美男gay| 久久国产乱子精品免费女| 国产亚洲福利社区一区| 欧美性欧美巨大黑白大战| 久久国产天堂福利天堂| 久久久久久成人精品| 日韩国产一区久久| av天堂永久资源网| julia中文字幕久久亚洲蜜臀| 韩国av电影免费观看| 日本a级片免费| 午夜欧美巨大性欧美巨大 | 公共露出暴露狂另类av| 99国产在线视频| 国产精品99久久久久久久久 | 亚洲国产精华液网站w | 在线天堂资源www在线污| 69视频在线| 色播色播色播色播色播在线| 男人午夜天堂| 国产一卡不卡| 99re这里都是精品| 日韩激情视频在线播放| 女人一区二区三区| 婷婷激情在线| 亚洲精品一二| 天天影视网天天综合色在线播放| 91精品国产精品| 午夜大尺度福利视频| 在这里有精品| 国产欧美日韩三区| 欧美巨乳美女视频| 国产在线青青草| 91成人噜噜噜在线播放| 亚洲精品网址| 国产高清不卡一区二区| 国产精品久久看| 精品99久久久久久| 天堂精品视频| 久久免费视频66| 中文字幕在线国产精品| 亚洲免费观看在线观看| 亚洲视频香蕉人妖| 亚洲视频免费看| 中文字幕一区二区三区四区不卡| 亚洲欧美综合在线精品| 综合久久国产九一剧情麻豆| 国产精品久久久久久久久动漫| 国产精品国产三级国产专播品爱网 | 欧美精选一区| 欧美阿v一级看视频| 在线观看国产精品入口| 欧美大片一区| 亚洲综合国产| 国产综合色在线| av在线综合网| 国产精品久久久久aaaa樱花| 成人免费在线播放视频| 污片在线观看一区二区| 欧美怡红院视频| 精品国产一区二区三区不卡| 亚洲欧美在线免费| 欧美成人中文字幕在线| 日韩**中文字幕毛片| 51国产成人精品午夜福中文下载| 久久av一区二区三区亚洲| 国产女人18毛片| 成年人视频在线免费| 91成人福利在线观看| 日本美女高清在线观看免费| 天堂在线中文网官网| 精品国模一区二区三区欧美| 不卡在线一区| 午夜在线a亚洲v天堂网2018| 丰满白嫩尤物一区二区| 国产精品电影一区二区三区| 色乱码一区二区三区88| 亚洲国产精久久久久久| 日韩亚洲第一页| 国产精品久久久精品| 久久国产精品 国产精品| 免费日韩在线观看| aaa一级毛片| 91社区在线高清| 性高爱久久久久久久久| 国内精品国产成人国产三级粉色 | 日韩三级电影网| 手机在线免费观看av| 婷婷丁香久久| 99精品综合| 精品在线播放免费| 亚洲国产精品国自产拍av| 一本色道久久综合亚洲91| 精品网站999www| 97不卡在线视频| 欧美精品二区三区四区免费看视频| 欧美视频在线观看网站| 亚洲女人视频| 精品免费av一区二区三区| 久久视频在线|