1. from bs4 import BeautifulSoup
    2. import requests
    3. allUniv = []
    4. def getHTMLText(url):
    5. try:
    6. r = requests.get(url, timeout=30)
    7. r.raise_for_status()
    8. r.encoding = 'utf-8'
    9. return r.text
    10. except:
    11. return ""
    12. def fillUnivList(soup):
    13. data = soup.find_all('tr')
    14. print(data)
    15. for tr in data:
    16. ltd = tr.find_all('td')
    17. print(ltd)
    18. if len(ltd) == 0:
    19. continue
    20. singleUniv = []
    21. for td in ltd:
    22. print(td.get_text())
    23. if td.get_text() != '':
    24. singleUniv.append(td.get_text().strip())
    25. print(singleUniv)
    26. allUniv.append(singleUniv)
    27. print(allUniv)
    28. def printUnivList(num):
    29. print("{:^4}{:^10}{:^5}{:^8}{:^10}".format("排名", "学校名称", "省市", "总分", "培养规模"))
    30. for i in range(num):
    31. u = allUniv[i]
    32. print(u)
    33. print("{:^4}{:^10}{:^5}{:^8}{:^10}".format(u[0], u[1], u[2], u[4], u[5]))
    34. print("{:^4}{:^10}{:^5}{:^8}{:^10}".format(u[0], u[1], u[2], u[3], u[6]))
    35. def main():
    36. url = 'https://www.shanghairanking.cn/api/pub/v1/bcur?bcur_type=11&year=2020'
    37. html = getHTMLText(url)
    38. soup = BeautifulSoup(html, "html.parser")
    39. print(soup)
    40. # fillUnivList(soup)
    41. # printUnivList(5)
    42. main()
    1. import requests
    2. from bs4 import BeautifulSoup
    3. import bs4
    4. def getJson(url):
    5. try:
    6. r = requests.get(url, timeout=30)
    7. r.raise_for_status()
    8. r.encoding = r.apparent_encoding
    9. return r.json()
    10. except Exception as e:
    11. print(e)
    12. return {'code':'0','msg':'error'}
    13. def printUnivList(rankings, limit):
    14. print("{:<4}\t{:^10}\t{:^10}\t{:^8}".format("排名","学校名称","省市","总分"))
    15. for i in range(limit):
    16. u=rankings[i]
    17. print("{:^4}\t{:^10}\t{:^10}\t{:^8}".format(u["ranking"],u["univNameCn"],u["province"],u["score"]))
    18. def main():
    19. uinfo = []
    20. url = 'https://www.shanghairanking.cn/api/pub/v1/bcur?bcur_type=11&year=2020'
    21. json = getJson(url)
    22. if json["code"]!=200:
    23. print(json["msg"])
    24. return
    25. rankings=json["data"]["rankings"]
    26. printUnivList(rankings, 20) # 20 univs
    27. if __name__=="__main__":
    28. main()