Python3爬蟲從入門到精通 中國大

2021-08-07 17:16:37 字數 1665 閱讀 9366

#採用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...