【Python】第一个爬虫和测试
一、羽毛球体育竞技测试
利用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()
浙公网安备 33010602011771号