python例項,python網路爬蟲爬取大學排名!

dream_網路安全發表於2018-11-20

原始碼:

import requests
from bs4 import BeautifulSoup
import bs4

def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""

def fillUnivList(ulist,html):
    soup = BeautifulSoup(html,"html.parser")
    for tr in soup.find('tbody').children:
        if isinstance(tr, bs4.element.Tag):
            tds  =  tr('td')
            ulist.append([tds[0].string,tds[1].string,tds[2].string])

def printUnivList(ulist, num):
    print("{:^10}\t{:^6}\t{:^10}".format("排名", "學校名稱", "總分"))
    for i in range(num):
        u=ulist[i]
        print("{:^10}\t{:^6}\t{:^10}".format(u[0], u[1], u[2]))
        #print("Suc"+str(num))
def main():
    uinfo = []
    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
    html = getHTMLText(url)
    fillUnivList(uinfo, html)
    printUnivList(uinfo, 20)
main()

在這裡插入圖片描述
在這裡插入圖片描述
執行結果:
在這裡插入圖片描述
總分那一項,沒輸出正確。
在這裡插入圖片描述修改這裡就可以了吧。因為對應的標籤的序號是第四個。
在這裡插入圖片描述
在這裡插入圖片描述
程式的結構設計
步驟1:從網路上獲取大學排名網頁內容
getHTMLText()
步驟2:提取網頁內容中資訊到合適的資料結構
fillUnivList()printUnivList()

步驟3:利用資料結構展示並輸出結果
printUnivList()

課程地址:https://www.icourse163.org/learn/BIT-1001870001?tid=1003245012#/learn/content?type=detail&id=1004574446&cid=1005754042

相關文章