小作业1: 利用requests库对“最好大学网”中的中国最好大学软科排名进行抓取。
思路:打开最好大学网中的中国最好大学排名的网页,右击,获取其网页源代码。可得其 url=http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html 下面利用requests对其信息进行获取,并利用BeautifulSoup库对其进行简单处理,使其信息便于人和计算机读取。
全部代码:
import requests import bs4 from bs4 import BeautifulSoup 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,tds[2].string]) def printUnivList(ulist,num): tplt="{0:10}\t{1:{3}10}\t{2:^10}" print(tplt.format(“排名”,“学校名称”,“所在地”,chr(12288))) for i in range(num): u=ulist[i] print(tplt.format(u[0],u[1],u[2],chr(12288))) def main(): uinfo=[] url=“http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html” html=getHTMLText(url) fillUnivList(uinfo,html) printUnivList(uinfo,20) main()
这是对前20名的大学进行显示,可根据需要自行更改。 第一次编写记得事先安装第三方库。安装代码为:
pip install requests pip install BeautifulSoup
代码运行结果为
排名 学校名称 所在地 1 清华大学 北京 2 北京大学 北京 3 浙江大学 浙江 4 上海交通大学 上海 5 复旦大学 上海 6 中国科学技术大学 安徽 7 华中科技大学 湖北 7 南京大学 江苏 9 中山大学 广东 10 哈尔滨工业大学 黑龙江 11 北京航空航天大学 北京 12 武汉大学 湖北 13 同济大学 上海 14 西安交通大学 陕西 15 四川大学 四川 16 北京理工大学 北京 17 东南大学 江苏 18 南开大学 天津 19 天津大学 天津 20 华南理工大学 广东