中国大学排名定向爬虫
最近开始学习爬虫,在自己的这双笨拙的手一行一行的敲打出代码,完成了一个简单的实例,突然有了想写博客的冲动,便急急忙忙的去申请.......这才有了这篇随笔。
中国大学排名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)

浙公网安备 33010602011771号