import requests
from bs4 import BeautifulSoup
import bs4
from rest_framework.response import Response
def getHTMLText(url): # 輸入需要獲取的url的資訊,輸出是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): # 將html頁面放入ulist串列中
soup = BeautifulSoup(html, 'html.parser')
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag):
tds = tr('td') # 對tr標簽中的td做查詢
ulist.append([tds[0].string, tds[1].string, tds[3].string])
def printUnivList(ulist, num): # 將串列中的元素列印出來
tplt = '{0:^10}\t{1:{3}^10}\t{2:^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.com/zuihaodaxuepaiming2018.html'
html = getHTMLText(url)
fillUnivList(uinfo, html)
printUnivList(uinfo, 20)
main( )
執行后報錯:TypeError: __init__() takes 1 positional argument but 2 were given
沒找到是哪里問題!?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/79473.html
上一篇:Python小白來求助一下
