爬虫定向爬取中国大学排名信息
#!/usr/bin/python3 import requests from bs4 import BeautifulSoup import bs4 #从网络上获取大学排名网页内容 def get_HTML_text(url): try: r=requests.get(url, timeout=30) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: return '该网页请求连接失败' #提取指定网页内容信息到合适的数据结构(二维列表存储信息) def fill_university_list(list_info,html): count=0 soup=BeautifulSoup(html,'html.parser') for tr in soup.find('tbody').children: if isinstance(tr,bs4.element.Tag): #过滤body标签的子标签的字符串类型(非Tag类型) count+=1 tds=tr('td') list_info.append([tds[0].string,tds[1].string,tds[2].string,tds[3].string,tds[4].string]) return count #利用数据结构展示并输出结果 def print_university_list(list_info,num): tplt='{0:^5}{1:{5}^20}{2:^17}{3:^5}{4:^18}' print(tplt.format('学校排名','学校名称','评分','所属类型','所在地域',chr(12288))) for i in range(num): u=list_info[i] print(tplt.format(u[0],u[1],u[2],u[3],u[4],chr(12288))) if __name__=="__main__": list_info=[] url='http://www.gaokaopai.com/paihang-otype-2.html?f=1&ly=bd&city=&cate=&batch_type=' html=get_HTML_text(url) num=fill_university_list(list_info,html) print_university_list(list_info,num)