''' 中国大学排名项目 功能描述 输入:大学排名URL链接 输出:大学排名信息的屏幕输出(排名,大学名称,总分) 技术路线:requests-bs4 定向爬虫:仅对输入URL进行爬取,不扩展爬取 ''' ''' 程序的结构设计 步骤1:从网络上获取大学排名网页内容 步骤2:提取网页内容中信息到合适的数据结构(二维列表) 步骤3:利用数据结构展示并输出结果 ''' import re from bs4 import BeautifulSoup import bs4 import requests #从网络上获取大学排名网页内容 def getHTMLText(url): try: r = requests.get(url,timeout = 30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "" #提取网页内容中信息到合适的数据结构 def fillUnivList(uList,html): soup = BeautifulSoup(html,"html.parser") for tr in soup.find("tbody").children: if isinstance(tr,bs4.element.Tag): tds = tr("td") uList.append([tds[0]].string,tds[1].string) pass #利用数据结构展示并输出结果 def printUnivList(uList,num): print("{:^10}\t{:^6}\t{:^10}".format("排名","学校","分数")) for i in range(num): u = uList[i] print("{:^10}\t{:^6}\t{:^10}".format(u[0],u[1],u[2])) print("Suc"+str(num)) def main(): uinfo = [] url = "http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html" html=getHTMLText(url) fillUnivList(uinfo,html) printUnivList(uinfo,20)# 20 univs ''' 优化 中文对齐问题的原因 采用中文字符的空格填充chr(12288) ''' ''' NumPy的随机数函数子库 NumPy的random子库 rand() randn() randint() seed() np.random的随机函数 uniform(low,high,size) normal(loc,scale,size) poisson(lam,size) '''
Python爬虫实例
最新推荐文章于 2021-03-26 18:18:28 发布