Python爬蟲教程:爬取800多所大學學校排名、星級等

前言

國內大學最新排名,北大反超,浙大僅第四,中科大跌至第八

時隔五年,“雙一流”大學即將迎來首次大考,這也是繼改變高校評斷標準之後,第一次即將以官方對外發布,自然是引來了許多人的關注。最近,有許多不同機構發佈的國內高校排名,但彼此之間的差異很大,網友之間的爭議也很大。

項目目標

爬取高三網大學排名,並保存

目標網址

http://m.gaosan.com/gaokao/265440.html

基本環境配置

python 3.6 pycharm

爬蟲代碼

導入工具
新手學習,Python 教程/工具/方法/解疑+V:itz992
import requests
import parsel
import csv
請求網頁數據

url = 'http://m.gaosan.com/gaokao/265440.html' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' }
response = requests.get(url=url, headers=headers)
response.encoding = response.apparent_encoding


爬取數據
selector = parsel.Selector(response.text)
trs = selector.css('#page tr') for tr in trs:
    dit = {}
    ranking = tr.css('td:nth-child(1)::text').get()
    dit['名次'] = ranking
    school = tr.css('td:nth-child(2)::text').get()
    dit['學校名稱'] = school
    score = tr.css('td:nth-child(3)::text').get()
    dit['綜合得分'] = score
    star = tr.css('td:nth-child(4)::text').get()
    dit['星級排名'] = star
    level = tr.css('td:nth-child(5)::text').get()
    dit['辦學層次'] = level
    csv_writer.writerow(dit)


保存數據
f = open('排名.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['名次', '學校名稱', '綜合得分', '星級排名', '辦學層次'])
f.close()

運行代碼,效果如下圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章