中国大学排名定向爬虫

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

 

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

所要用到的python库:Requests  bs4

获取网址内容

 1 def getHtmlText(url):
 2     try:
 3         r = requests.get(url,timeout = 30)
 4         r.raise_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 isinstance(tr,bs4.element.Tag):
7             tds = tr('td')    #tr是一行,td是行中的列,相当于tds = tr.find_all('td')
8             ulist.append([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 from bs4 import BeautifulSoup
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)

 

posted @ 2019-09-29 10:31  /章鱼哥  阅读(194)  评论(0)    收藏  举报