中国大学排名定向爬虫

  最近开始学习爬虫,在自己的这双笨拙的手一行一行的敲打出代码,完成了一个简单的实例,突然有了想写博客的冲动,便急急忙忙的去申请.......这才有了这篇随笔。

中国大学排名url:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html

所要用到的python库:Requests  bs4

获取网址内容

 1 def getHtmlText(url):
 2     try:
 3         r = r.requests.get(url,timeout = 30)
 4         r.rasise_for_status()
 5         r.encoding = r.apparent.encoding
 6         return r.text
 7     except:
 8          print('获取网址错误')
知识兔

提取网页内容存放到合适的数据结构

1 import bs4
2 
3 def fillRankList(ulist,demo):
4     soup = BeautifulSoup(demo,'html.parser')
5     for tr in soup.find('tbody').children:
6         if isinstence(tr,bs4.element.Tag):
7             tds = tr('td')    #tr是一行,td是行中的列,相当于tds = tr.find_all('td')
8             ulist.extend([tds[0].string,tds[1].string,tds[2].string,tds[3].string])
知识兔

打印排名

1 def printRankList(ulist,num):
2     print("{:^10}\t{:^6}\t{:^10}\t{:^6}".format('排名‘,’学校名称‘,’省份‘,‘总分’)
3     for i in range(num):
4         u = ulist[i]
5         print("{:^10}\t{:^6}\t{:^10}\t{:^6}".format(u[0],u[1],u[2],u[3]))
知识兔

主程序

1 imort Request
2 import bs4
3 
4 def mian():
5     Ulist = []
6     url = "http://zuihaodaxue.cn/zuihaodaxuepaiming2019.html"
7     demo = getHtmlText(url)
8     fillRankList(Ulist,demo)
9     printRankList(Ulist,20)
知识兔
计算机