程式設計(Python)實驗十五 網路爬蟲基礎 (1)
阿新 • • 發佈:2021-01-13
技術標籤:Python程式設計實驗(SWUST)python正則表示式爬蟲
實驗目的
1、網路爬蟲的基本原理與規範。
2、掌握使用 Requests 庫獲取靜態網頁資訊。
3、掌握使用 BeautifulSoup4 庫解析網頁資訊。
4、掌握正則表示式的基本用法。
實驗內容
題目 中國大學排名定向爬蟲
(1) 檢視 https://www.shanghairanking.cn/rankings/bcur/2020 網頁中關於各大學排名的資訊組織(F12 快捷鍵查閱 html 程式碼)
(2)使用 requests、beautifulsoup4 或 re 庫抓取並解析排名,輸出各大學的排名資訊,如下圖所示。
程式碼
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r = requests.get(url,timeout=30)
r.raise_for_status()
r.encoding = 'utf-8'
return r.text
except:
return ""
def fillUniviList(ulist,html):
soup = BeautifulSoup( html,"html.parser")
for tr in soup.find('tbody').children:
if isinstance(tr,bs4.element.Tag):
tds = tr('td')
ulist.append([tds[0].text,tds[1].text,tds[4].text])
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].strip(),u[1].strip(),u[2].strip(),chr(12288)))
def main():
uinfo = []
url = 'https://www.shanghairanking.cn/rankings/bcur/2020'
html = getHTMLText(url)
fillUniviList(uinfo,html)
printUnivList(uinfo,20)
main()