爬虫第一课

import requests
import time
r=requests.get("http://www.baidu.com")
print(r.status_code)#200 404
print(r.encoding)#ISO-8859-1
print(r.apparent_encoding)#utf-8
print(r.text)
print(r.headers)

def getHTMLTEXT(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return("error")

def main():
    url= 'https://www.baidu.com'
    starttime=time.time()
    for i in range(10):
        getHTMLTEXT(url)
        print(i)
    endtime=time.time()
    print(str(endtime-starttime)+'s')
    
if __name__=="__main__":
    main()
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return ""
    
def fillUnivList(ulist,html):
    soup=BeautifulSoup(html,"html.parser")
    for tr in soup.find('tbody').children:
        if isinstance(tr,bs4.element.Tag):
            tds=tr('td') #tds = tr.find_all('td')  
            ulist.append([tds[0].string,tds[1].string,tds[3].string])
    
def printUnivList(ulist,num):
    tplt = "{0:^10}\t{1:{3}^20}\t{2:^10}"   # {1:{3}^10} 1表示位置,{3}表示用第3个参数来填充,^表示居中,10表示占10个位置
    print(tplt.format("排名","学校名称","总分",chr(12288)))    
    for i in range(num):
        u=ulist[i]
        print(tplt.format(u[0],u[1],u[2],chr(12288)))
    
def main():
    uinfo=[]
    url='http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
    html=getHTMLText(url)
    fillUnivList(uinfo,html)
    printUnivList(uinfo,30)
    
main()
    排名    	        学校名称        	    总分    
    1     	        清华大学        	   95.9   
    2     	        北京大学        	   82.6   
    3     	        浙江大学        	    80    
    4     	       上海交通大学       	   78.7   
    5     	        复旦大学        	   70.9   
    6     	        南京大学        	   66.1   
    7     	      中国科学技术大学      	   65.5   
    8     	      哈尔滨工业大学       	   63.5   
    9     	       华中科技大学       	   62.9   
    10    	        中山大学        	   62.1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值