一、羽毛球体育竞技测试
利用try···except进行异常处理(此外还可以利用doctest库进行测试,doctest.testmod())
def gameover(setA,setB): if setA==20 or setB==20: return True else: return False try: a=gameover(18,25) print(a) except: print("Error")
调试结果如下:
二、python网络爬虫(requests库)
requests库解析:
(1)七个常用方法
- requests.request():构造一个请求
- requests.get():获取网页
- requests.head():获取网页头信息
- requests.post():向网页提交post方法
- requests.put():向网页提交put方法
- requests.patch():向网页提交局部修改请求
- requests.delete():向网页提交删除请求
(2)五个常用的网页requests属性
- status_code:200表示成功
- text:http响应内容的字符串形式
- encoding:从http header中猜测的响应内容编码方式
- apparent_encoding:从内容解析出的响应内容编码方式(备选编码方式)
- r.content:响应内容的二进制形式
爬360浏览器主页
# -*- coding: utf-8 -*- """ Created on Mon May 20 11:13:38 2019 @author: yyp """ import requests def getHTMLText(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding='utf-8' return r.text except: return "" url="http://browser.360.cn" print(getHTMLText(url))
结果如下:
三、中国大学排名爬虫
# -*- coding: utf-8 -*- """ Created on Thu May 23 14:33:45 2019 @author: yyp """ import requests from bs4 import BeautifulSoup allUniv=[]#储存全部表格数据,二维数组 def getHTMLText(url): try: r=requests.get(url,timeout=20) r.raise_for_status() r.encoding='utf-8' return r.text except: return"" def fillUnivList(soup): data=soup.find_all('tr')#找到所有tr标签 for tr in data: #循环tr ltd=tr.find_all('td') #在每个tr标签中找到所有的td标签 if len(ltd)==0: continue singleUniv=[] #生成一维数组 for td in ltd: singleUniv.append(td.string)#提取td标签中的信息 allUniv.append(singleUniv) def printUnivList(num): print("{:^4}{:^10}{:^5}{:^8}{:^10}".format("排名","学校名称","省市","总分" ,"培养规模")) for i in range(num): u=allUniv[i] print("{:^4}{:^10}{:^5}{:^8}{:^10}".format(u[0],u[1],u[2],u[3],u[6])) def main(num): url='http://www.zuihaodaxue.cn/ zuihaodaxuepaiming2018.html' html=getHTMLText(url) soup=BeautifulSoup(html,"html.paraer") fillUnivList(soup) printUnivList(num) main()