91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么爬取中國大學排名并且保存到excel中

發布時間:2021-10-26 09:38:37 來源:億速云 閱讀:226 作者:柒染 欄目:大數據

Python怎么爬取中國大學排名并且保存到excel中,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

前言

今天發的是python爬蟲爬取中國大學排名,并且保存到excel中,當然這個代碼很簡單,我用了半小時就寫完了,我的整體框架非常清晰,可以直接拿去用,也希望有小白可以學習到關于爬蟲的一些知識,當然我也只是在學習中,有不好的地方還麻煩大佬們指正!謝謝!

爬取中國大學排名

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

request 獲取 html
beautiful soup 解析網頁re 正則表達式匹配內容新建并保存 excel
  1from bs4 import BeautifulSoup  # 網頁解析  獲取數據
  2import re  # 正則表達式 進行文字匹配
  3import urllib.request, urllib.error  # 制定url 獲取網頁數據
  4import xlwt
  5
  6def main():
  7    baseurl = "http://m.gaosan.com/gaokao/265440.html"
  8    # 1爬取網頁
  9    datalist = getData(baseurl)
 10    savepath = "中國大學排名.xls"
 11    saveData(datalist,savepath)
 12
 13# 正則表達式
 14paiming = re.compile(r'<td>(.*)</td><td>.*</td><td>.*</td><td>.*</td><td>.*</td>')  # 創建超鏈接正則表達式對象,表示字符串模式,規則
 15xuexiao = re.compile(r'<td>.*</td><td>(.*)</td><td>.*</td><td>.*</td><td>.*</td>')
 16defen   = re.compile(r'<td>.*</td><td>.*</td><td>(.*)</td><td>.*</td><td>.*</td>')
 17xingji  = re.compile(r'<td>.*</td><td>.*</td><td>.*</td><td>(.*)</td><td>.*</td>')
 18cengci  = re.compile(r'<td>.*</td><td>.*</td><td>.*</td><td>.*</td><td>(.*)</td>')
 19
 20# 爬取網頁
 21def getData(baseurl):
 22    datalist = []
 23    html = askURL(baseurl)  # 保存獲取到的網頁源碼
 24    # print(html)
 25    #【逐一】解析數據  (一個網頁就解析一次)
 26    soup = BeautifulSoup(html, "html.parser")  # soup是解析后的樹形結構對象
 27    for item in soup.find_all('tr'):  # 查找符合要求的字符串形成列表
 28        # print(item)    #測試查看item全部
 29        data = []  # 保存一個學校的所有信息
 30        item = str(item)
 31        #排名
 32        paiming1 = re.findall(paiming, item)  # re正則表達式查找指定字符串 0表示只要第一個 前面是標準后面是找的范圍
 33        # print(paiming1)
 34        if(not paiming1):
 35            pass
 36        else:
 37            print(paiming1[0])
 38            data.append(paiming1)
 39        if(paiming1 in data):
 40            #學校名字
 41            xuexiao1 = re.findall(xuexiao, item)[0]
 42            # print(xuexiao1)
 43            data.append(xuexiao1)
 44            #得分
 45            defen1 = re.findall(defen, item)[0]
 46            # print(defen1)
 47            data.append(defen1)
 48            #星級
 49            xingji1 = re.findall(xingji, item)[0]
 50            # print(xingji1)
 51            data.append(xingji1)
 52            #層次
 53            cengci1 = re.findall(cengci, item)[0]
 54            # print(cengci1)
 55            data.append(cengci1)
 56            # print('-'*80)
 57        datalist.append(data)  # 把處理好的一個學校信息放入datalist中
 58    return datalist
 59
 60
 61# 得到指定一個url網頁信息內容
 62def askURL(url):
 63    # 我的初始訪問user agent
 64    head = {  # 模擬瀏覽器頭部信息,向豆瓣服務器發送消息 偽裝用的
 65        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36"
 66    }
 67    # 用戶代理表示告訴豆瓣服務器我們是什么類型的機器--瀏覽器  本質是告訴瀏覽器我們可以接受什么水平的文件內容
 68    request = urllib.request.Request(url, headers=head)  # 攜帶頭部信息訪問url
 69    # 用request對象訪問
 70    html = ""
 71    try:
 72        response = urllib.request.urlopen(request)  # 用urlopen傳遞封裝好的request對象
 73        html = response.read().decode("utf-8")  # read 讀取 可以解碼 防治亂碼
 74        # print(html)
 75    except urllib.error.URLError as e:
 76        if hasattr(e, "code"):
 77            print(e.code)  # 打印錯誤代碼
 78        if hasattr(e, "reason"):
 79            print(e.reason)  # 打印錯誤原因
 80    return html
 81
 82
 83# 3保存數據
 84def saveData(datalist, savepath):
 85    book = xlwt.Workbook(encoding="utf-8", style_compression=0)  # 創建workbook對象   樣式壓縮效果
 86    sheet = book.add_sheet('中國大學排名', cell_overwrite_ok=True)  # 創建工作表  一個表單  cell覆蓋
 87    for i in range(0, 640):
 88        print("第%d條" % (i + 1))
 89        data = datalist[i]
 90        # print(data)
 91        for j in range(0, 5):  # 每一行數據保存進去
 92            sheet.write(i , j, data[j])  # 數據
 93    book.save(savepath)  # 保存數據表
 94
 95
 96#主函數
 97if __name__ == "__main__":  # 當程序執行時
 98    # #調用函數     程序執行入口
 99    main()
100    # init_db("movietest.db")
101    print("爬取完畢!")

具體實現效果如下

Python怎么爬取中國大學排名并且保存到excel中

一共600多條數據 

具體的過程在代碼中也已經清晰的標注好備注,如有不懂可以留言,如果改進的地方,麻煩大佬們指正,謝謝!

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖北省| 内江市| 涿州市| 德钦县| 高州市| 禹州市| 郯城县| 五寨县| 衡山县| 奉新县| 金秀| 淳化县| 宜黄县| 石柱| 安陆市| 平定县| 潮安县| 安多县| 阿坝| 天津市| 鲁山县| 大英县| 伊通| 六安市| 红安县| 镇康县| 五指山市| 手游| 五大连池市| 婺源县| 上虞市| 隆尧县| 甘肃省| 六盘水市| 蓝山县| 东阳市| 治多县| 平度市| 闻喜县| 广州市| 疏勒县|