第一个爬虫和测试
Python測(cè)試函數(shù)的方法之一是用:try……except
def gameover(a,b):if a>=10 and b>=10 and abs(a-b)==2:return Trueif (a>=11 and b<11) or (a<11 and b>=11):return Truereturn False try:a=gameover(10,11)print(a) except:print("Error")?
gameover測(cè)試的函數(shù),沒(méi)傳參數(shù)的a,b,函數(shù)結(jié)果是True or False
try:試著執(zhí)行g(shù)ameover()函數(shù),正常就執(zhí)行函數(shù)
except:否則 打印'Error'
這里用10,11這一對(duì)來(lái)測(cè)試,結(jié)果為:
runfile('D:/新建文件夾/chesi.py', wdir='D:/新建文件夾')
True
程序運(yùn)行正常且結(jié)果正確
若不輸入?yún)?shù),結(jié)果應(yīng)為Error,結(jié)果為:
requests庫(kù)是一個(gè)簡(jiǎn)潔且簡(jiǎn)單的處理HTTP請(qǐng)求的第三方庫(kù)。
get()是對(duì)應(yīng)與HTTP的GET方式,獲取網(wǎng)頁(yè)的最常用方法,可以增加timeout=n 參數(shù),設(shè)定每次請(qǐng)求超時(shí)時(shí)間為n秒
text()是HTTP相應(yīng)內(nèi)容的字符串形式,即url對(duì)應(yīng)的網(wǎng)頁(yè)內(nèi)容
content()是HTTP相應(yīng)內(nèi)容的二進(jìn)制形式
用requests()打開百度20次
from requests import * try:for i in range(20):r=get("http://www.baidu.com")r.raise_for_status()r.encoding='utf-8'print(r)print(len(r.text))print(len(r.content)) except:print("Error")結(jié)果為:
?爬取2015年的排行:
# -*- coding: utf-8 -*- #""" #Created on Tue May 21 22:02:48 2019#@author: ASUS #"""import requests from bs4 import BeautifulSoup allUniv=[] def get(url):try:r=requests.get(url,timeout=30)r.raise_for_status()r.encoding=r.apparent_encodingreturn r.textexcept:return "" def f(soup):data=soup.find_all('tr')fw=open("pq2015.csv","w",encoding='utf-8')for tr in data:ltd=tr.find_all('td')if len(ltd)==0:continues=[]for td in ltd:s.append(td.string)allUniv.append(s)
fw.write(",".join(s)+"\n")
??? fw.close() def p(num):print("{1:^4}{2:{0}^10}{3:{0}^6}{4:{0}^4}{5:{0}^10}{6:{0}^10}{7:{0}^10}".format(chr(12288),"排名","學(xué)校名稱","省市","總分","人才培養(yǎng)得分","科學(xué)研究得分","社會(huì)服務(wù)得分"))for i in range(num):u=allUniv[i]print("{1:^4}{2:{0}^11}{3:{0}^6}{4:{0}^7.1f}{5:{0}^10}{6:{0}^12}{6:{0}^10}".format(chr(12288),u[0],u[1],u[2],eval(u[3]),eval(u[4]),eval(u[5]),eval(u[6]))) def main(num):u='http://www.zuihaodaxue.cn/zuihaodaxuepaiming2015_0.html'h=get(u)soup=BeautifulSoup(h,"html.parser")f(soup)p(num) main(30)
結(jié)果為:
?將數(shù)據(jù)保存到csv,結(jié)果為:
轉(zhuǎn)載于:https://www.cnblogs.com/13128870440-zxy/p/10893219.html
總結(jié)
- 上一篇: linux内核中的数据结构
- 下一篇: Yii2中你可能忽略但很有用的两个方法b