跟小白学python网络爬虫实例1

实例1--2017中国最好大学排名定向爬虫

原始mooc上的代码仍有瑕疵,我在spyder环境下进行了优化和调试

直接上代码:

1 # 2017中国最好大学排名定向爬虫 2 """ 3 Created on Mon Oct 9 19:52:19 2017 4 5 @author: DONG LONG RUI 6 """ 7 import requests 8 import bs4 9 from bs4 import BeautifulSoup 10 11 def getHTMLText(url): 12 try: 13 r=requests.get(url,timeout=30) 14 r.raise_for_status() 15 r.encoding=r.apparent_encoding 16 return r.text 17 except: 18 return \'\' 19 20 def fillUnivList(ulist,html): 21 soup=BeautifulSoup(html,\'html.parser\') 22 for tr in soup.find(\'tbody\').children: 23 if isinstance(tr,bs4.element.Tag): 24 tds=tr(\'td\') 25 # print(tds[0].contents[0]) 26 # print(\'\t\') 27 # print(tds[1]) 28 # print(\'\t\') 29 # print(tds[3]) 30 ulist.append([tds[0].contents[0],tds[1].string,tds[3].string]) 31 32 33 34 def printUnivList(ulist,num): 35 tplt=\'{0:^10}\t{1:^12}\t{2:^12}\' 36 print(tplt.format(\'排名\',\'学校名称\',\'总分\'))#表头的后两个元素的槽的宽度进行调整才对齐 37 for i in range(num): 38 u=ulist[i] 39 print(\'{0:^10}\t{1:{3}^10}\t{2:^10}\'.format(u[0],u[1],u[2],chr(12288))) 40 41 def main(): 42 uinfo=[] 43 url=\'\' 44 html=getHTMLText(url) 45 fillUnivList(uinfo,html) 46 #print(uinfo) 47 printUnivList(uinfo,80)#打印80个大学 48 49 main()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxwzs.html