輸入:大學排名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...