python 爬虫实例--2016中国最好大学排名(非原创)

在慕课上看到了一个简单易懂的爬虫实例,添加一下注释算是自己保存着,顺便分享一下~

url为 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html

  1. #CrawUnivRankingB.py
  2. import requests
  3. from bs4 import BeautifulSoup
  4. import bs4
  5.  
  6. def getHTMLText(url): #1 get url
  7.     try:
  8.         = requests.get(url, timeout=30)
  9.         r.raise_for_status()
  10.         r.encoding = r.apparent_encoding
  11.         return r.text
  12.     except:
  13.         return ""
  14.  
  15. def fillUnivList(ulist, html): #2 解析网址生成列表
  16.     soup = BeautifulSoup(html, "html.parser")
  17.     for tr in soup.find('tbody').children:
  18.         if isinstance(tr, bs4.element.Tag):
  19.             tds = tr('td')
  20.             ulist.append([tds[0].string, tds[1].string, tds[3].string])
  21.  
  22. def printUnivList(ulist, num): #3 显示列表
  23.     tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"
  24.     print(tplt.format("排名","学校名称","总分",chr(12288)))
  25.     for in range(num): #后来做了优化,是输出的学校名称居中对齐,chr(12288)是汉字里面的空格
  26.         u=ulist[i]
  27.         print(tplt.format(u[0],u[1],u[2],chr(12288)))
  28.      
  29. def main():
  30.     uinfo = []
  31.     url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
  32.     html = getHTMLText(url)
  33.     fillUnivList(uinfo, html)
  34.     printUnivList(uinfo, 20# 20 univs
  35. main()

小白的同学也可以看一下原来教程

http://www.icourse163.org/learn/BIT-1001870001?tid=1002236011#/learn/content?type=detail&id=1002993610&cid=1003503396&replay=true

你可能感兴趣的:(python 爬虫实例--2016中国最好大学排名(非原创))