第一个爬虫和测试
(一)完善上次球赛数据:
代码如下:
def gameOver(a,b):
if (a>=15 and abs(a-b)>=2) or (b>=15 and abs(a-b)>=2):
return True
else:
return False
try:
c=gameOver()
print(c)
except:
print("Error")
当输入值为(17,11)时输出True,比赛结束。当输入值为(13,11)时输出False,比赛继续。
(二)爬虫
接下来做的是访问搜狗网页20次,并记录下text等相关信息。
代码如下:
import requests
for i in range(20):
r=requests.get("https://baidu.com/")
print(r.status_code)
print(r.text)
print(r.encoding)
r.encoding = 'utf-8'
print(r.text)
print(type(r.text))
print(type(r.content))
(三)、根据所给的html页面,保持为字符串,完成如下要求:
(1)打印head标签内容和你学号的后两位
(2)获取body标签的内容
(3)获取id的first的标签对象
(4)获取并打印html页面中的中文字符
from bs4 import BeautifulSoupr = '''<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><h1>我的第一个标题</h1><p id="first">我的第一个段落。</p></body> <table border="1"> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> </table></html>'''demo = BeautifulSoup(r,"html.parser")print(demo.title)print(demo.body)print(demo.p)print(demo.string) |
效果如下:
<title>菜鸟教程(runoob.com)</title>
<body>
<h1>我的第一个标题</h1>
<p id="first">我的第一个段落。</p>
</body>
<p id="first">我的第一个段落。</p>
None
(四)、爬取中国大学排名(年费2016),将数据存为csv文件。
import requests
from bs4 import BeautifulSoup
ALL = []
def getHTMLtext(url):
try:
r = requests.get(url,timeout = 30)
r.raise_for_status()
r.encoding = 'utf-8'
return r.text
except:
return ""
def fillUni(soup):
data = soup.find_all('tr')
for tr in data:
td1 = tr.find_all('td')
if len(td1) == 0:
continue
Single = []
for td in td1:
Single.append(td.string)
ALL.append(Single)
def printUni(num):
print("{1:^2}{2:{0}^10}{3:{0}^6}{4:{0}^6}{5:{0}^6}{6:{0}^6}{7:{0}^6}{8:{0}^6}{9:{0}^5}{10:{0}^6}{11:{0}^6}{12:{0}^6}{13:{0}^6}".format(chr(12288),"排名","学校名称","省市","总分", "生源质量","培养结果","科研规模","科研质量", "顶尖成果","顶尖人才","科技服务", "产学研究合作","成果转化"))
for i in range(num):
u = ALL[i]
print("{1:^4}{2:{0}^10}{3:{0}^6}{4:{0}^8}{5:{0}^9}{6:{0}^9}{7:{0}^7}{8:{0}^9}{9:{0}^7}{10:{0}^9}{11:{0}^8}{12:{0}^9}{13:{0}^9}".format(chr(12288),u[0], u[1],u[2],eval(u[3]), u[4],u[5],u[6],u[7],u[8], u[9],u[10],u[11],u[12]))
def main(num):
url = "http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html"
html = getHTMLtext(url)
soup = BeautifulSoup(html,"html.parser")
fillUni(soup)
printUni(num)
main(10)
效果如下:
排名 学校名称 省市 总分 生源质量 培养结果 科研规模 科研质量 顶尖成果 顶尖人才 科技服务 产学研究合作 成果转化
1 清华大学 北京市 95.9 100.0 97.90% 37342 1.298 1177 109 1137711 1187 593522
2 北京大学 北京市 82.6 98.9 95.96% 36137 1.294 986 87 439403 799 7343
3 浙江大学 浙江省 80 88.8 96.46% 41188 1.059 803 86 959511 833 64392
4 上海交通大学 上海市 78.7 90.6 96.76% 40417 1.08 730 76 688607 909 104871
5 复旦大学 上海市 70.9 90.4 97.04% 25519 1.311 687 58 246736 534 2088
6 南京大学 江苏省 66.1 90.7 98.58% 20722 1.302 551 34 365202 239 5130
7 中国科学技术大学 安徽省 65.5 90.1 91.30% 18507 1.433 662 40 63767 228 658
8 哈尔滨工业大学 黑龙江省 63.5 80.9 94.32% 25249 0.932 478 22 1403251 379 4970
9 华中科技大学 湖北省 62.9 83.5 92.07% 23503 1.099 507 33 442079 482 11457
10 中山大学 广东省 62.1 81.8 93.45% 23837 1.19 464 46 147873 207 310

浙公网安备 33010602011771号