Python爬蟲 2019大學排名資料抓取

2022-07-25 03:57:07 字數 2983 閱讀 3844

輸入:大學排名url連線

輸出:大學排名資訊螢幕輸出

所需要用到的庫:requests,bs4

獲取網頁資訊

提取網頁中的內容並放到資料結構中

利用資料結構展示並輸出結果

定義函式gethtmltext()獲取網頁資訊

定義函式univlist()放入資料結構

定義函式printunivlist()輸出到螢幕

總體而言:

檢視url源**

分析源**,檢視需要爬取的內容在什麼位置

從中可以看出,排名資訊是在標籤

具體的資訊是在標籤下的標籤內的string

定義函式gethtmltext

def gethmltext(url):

'''獲取url資訊,輸出url的內容,來抓取網頁的資訊

'''try:

r = request.get(url, timeout=30)

r.raise_for_status()

return r.text

except:

return "抓取失敗!"

定義函式univlist()
def univlist(ulist, html):

'''提取html中的資料,放入到ulist列表,完成資料提取

'''soup = beautifulsoup(html, "html.parser")

for tr in soup.find('tbody').children:

if isinstance(tr, bs4.element.tag): # 判斷tr的子節點是否為非屬性字串

tds = tr('td')

# print(tds)

# print('#' * 30)

# print(tds[0], tds[0].string)

# print('#' * 30)

# print(tds[1], tds[1].string)

# print('#' * 30)

# print(tds[2], tds[2].string)

# print('#' * 30)

# print(tds[3], tds[3].string)

定義函式printunivlist()
def printunivlist(ulist, num):

'''將ulist列表資訊列印,num表示列印前多少排名的學校

'''print("\t\t\t".format("排名", "學校名稱", "總分", '位址'))

for i in range(num):

u = ulist[i]

print("\t\t\t".format(u[0], u[1], u[2], u[3]))

主函式main()
def main():

'''實現整個**

'''ulist =

url = ''

html = gethtmltext(url)

univlist(ulist, html)

printunivlist(ulist, 100)

呼叫主函式
main()
完整**
import requests

import bs4

from bs4 import beautifulsoup

def gethmltext(url):

'''獲取url資訊,輸出url的內容,來抓取網頁的資訊

'''try:

r = request.get(url, timeout=30)

r.raise_for_status()

return r.text

except:

return "抓取失敗!"

def univlist(ulist, html):

'''提取html中的資料,放入到ulist列表,完成資料提取

'''soup = beautifulsoup(html, "html.parser")

for tr in soup.find('tbody').children:

if isinstance(tr, bs4.element.tag): # 判斷tr的子節點是否為非屬性字串

tds = tr('td')

# print(tds)

# print('#' * 30)

# print(tds[0], tds[0].string)

# print('#' * 30)

# print(tds[1], tds[1].string)

# print('#' * 30)

# print(tds[2], tds[2].string)

# print('#' * 30)

# print(tds[3], tds[3].string)

def printunivlist(ulist, num):

'''將ulist列表資訊列印,num表示列印前多少排名的學校

'''print("\t\t\t".format("排名", "學校名稱", "總分", '位址'))

for i in range(num):

u = ulist[i]

print("\t\t\t".format(u[0], u[1], u[2], u[3]))

def main():

'''實現整個**

'''uinfo =

url = ''

html = gethtmltext(url)

fillunivlist(uinfo, html)

printunivlist(uinfo, 100)

main()

python爬蟲案例(二) 大學排名

小菜鳥從乙個個案例來練習爬蟲,心路是曲折的,555 在爬蟲案例 一 中,是用urllib進行的。本案例中應用的是requests庫,它會比urllib更加方便,requests是python實現的最簡單易用的http庫,建議爬蟲使用requests庫。1.安裝requests庫。python沒有安裝...

使用python爬蟲爬取最好大學網大學排名例項

import requests from bs4 import beautifulsoup import bs4 從網路上獲取大學排名網頁內容 defgethtmltext url try r requests.get url,timeout 30 r.raise for status return...

python爬蟲小程式 python爬蟲學習小程式

coding utf 8 name 模組1 purpose author mrwang created 18 04 2014 licence import urllib def main url html urllib.urlopen url print html.read 讀取內容 print h...