Pythonは大学のランキングをよく取った.

7494 ワード

import requests
import bs4
from bs4 import BeautifulSoup

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):
    tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"
    print(tplt.format("  ", "    ", "  ", chr(12288)))
    for i in range(num):
        u = ulist[i]
        print(tplt.format(u[0], u[1], u[2],chr(12288)))


def main():
    unifo = []
    url = "http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html"
    html = getHTMLText(url)
    fillUnivList(unifo, html)
    printUnivList(unifo, 20)
main()

印刷効果D:pythonSpidervenvScriptspython.exe D:/python/Spider/Spider_CNPM.pyランキング学校名総点1清華大学北京2北京大学北京3浙江大学浙江4上海交通大学上海5復旦大学上海6中国科学技術大学安徽7華中科学技術大学湖北7南京大学江蘇9中山大学広東10ハルビン工業大学黒龍江11北京航空航天大学北京12武漢大学湖北13同済大学上海14西安交通大学陝西15四川大学四川16北京理工大学北京17東南大学江蘇18南開大学天津19天津大学天津20華南理工大学広東
Process finished with exit code 0