#採用request-bs4路線實現了中國大學排名定向爬蟲
# 對中英文混排輸出問題進行優化
import requests
from bs4 import beautifulsoup
import bs4
#import bs4 為了使用它的標籤型別定義
def gethtmltext(url) :
try:
r = requests.get(url, timeout = 30)
# print(r.status_code)200為正常,其他資訊都有誤
r.raise_for_status()
return r.text
except:
return 'get failed.'
def fillunivlist(ulist, html):
soup =beautifulsoup(html, 'html.parser')
#print(soup[0:500]) 報錯:typeerror: unhashable type:'slice'
for tr insoup.find('tbody').children:
if isinstance(tr, bs4.element.tag) :
# isinstance(object,classinfo) isinstance函式來判斷乙個物件是否為某個型別的例項
#tr有可能不是標籤型別,此處判斷起過濾的作用
tds =tr('td')
# 將所有的td標籤放入列表tds中
# print(tds[0]) 輸出:
# print(tds)
def printunivlist(ulist, num):
#tplt = '\t^10}\t' 報錯:valueerror: cannot switchfrom automatic field numbering to manual fieldspecification
tplt ='\t^10}\t'
#其中0 表示第乙個填充位置,1 第二個,以此類推
#:號後面帶填充的字元,只能是乙個字元,不指定的話預設是用半形空格填充
#print('\t\t'.format('排名', '學校名稱', '總分'))//報錯:keyerror: ' '
#print(\t\t.format('排名', '學校名稱','總分'))
print(tplt.format('排名','學校名稱', '總分', chr(12288)))
#chr(12288) 應該是全形空格
#乙個漢字也只算乙個字元
for i inrange(num):
u = ulist[i]
print(tplt.format(u[0], u[1], u[2],chr(12288)))
def main():
uinfo =
url =''
html =gethtmltext(url)
fillunivlist(uinfo,html)
printunivlist(uinfo, 20)
# 20 univ
main()
b站學習連線:
【python網路爬蟲與資訊提取】.mooc. 北京理工大學
Python從入門到精通
大神請繞路而走,本文適合入門小白 python基礎 python 資料型別和變數 python 字串和編碼 python 使用list和tuple python 條件判斷和迴圈 python 使用dict和set 函式python 呼叫函式 python 定義函式 python 函式的引數 pyth...
Python 3從入門到精通8 時間函式
有的時候寫程式要用到當前時間,我就想用 python去取當前的時間,好記性步入爛筆頭,自己做個筆記,以後好看。為了能夠更好的記住,我今天特意寫下python 當前時間這篇文章。取得時間相關的資訊的話,要用到python time模組,python time模組裡面有很多非常好用的功能,你可以去官方 ...
Python從入門到精通(目錄)
python從入門到精通 目錄 001 計算機基礎之程式設計 002 計算機組成原理 003 計算機作業系統 004 程式語言分類 005 網路瓶頸效應 006 計算機基礎小結 007 python和python直譯器 008 python直譯器的安裝 009 anaconda的安裝 010 pyt...