定向爬蟲指的是只針對所給的url的頁面爬取,不擴充套件爬取的爬蟲。給的例子的網頁採用靜態頁面的方式,是非常好的學習例子。
本次例項的要求:
url = ""
import requests
from bs4 import beautifulsoup
import os
import re
import bs4
程式的結構的設計:
從網路上獲取大學排名的網頁內容gethtmltext()
提取網頁內容中的資訊到合適的資料結構fillunivlist()
利用資料結構展示並輸出結果printunivlist()
分析頁面可以知道這裡只用到了beautifulsoup即可得到想要的資料。每個tr就是乙個學校,每個tr中的每個td就是乙個屬性,利用children和find_all就可以了。
def
gethtmltext
(url):
try:
r = requests.get(url, timeout = 30)
r.raise_for_status()
return r.text
except:
return
""def
fillunivlist
(ulist, html):
soup = beautifulsoup(html, 'html.parser')
for tr in soup.tbody.children:#這裡每乙個tr就是乙個學校
if isinstance(tr, bs4.element.tag):#需要過濾掉有可能出現的字串
tds = tr('td')
print (len(ulist))
defprintunivlist
(ulist, num):
''' 表示限制輸出寬度為x個字元,^表示輸出時右對齊。若此寬度小於字串的實際寬度,以實際寬度輸出。
但是如果不足會用西文字元空格補充,西文和中文字元占用不同所以可能會有對其問題
所以可以用chr(12288)來用中文空格
下面這句話的就是format中第三個變數來填充(其實是第四個)
而這裡由於有標號就必須要用了
'''tplt = "\t^10}\t"
print (tplt.format("ranking", "name", "score",chr(12288)))
for i in range(num):
u = ulist[i]
print (tplt.format(u[0], u[1], u[2], chr(12288)))
print ("suc" + str(num))
defmain
(): unifo =
url = ""
html = gethtmltext(url)
fillunivlist(unifo, html)
printunivlist(unifo, 20)# 20 university
main()
中國大學排名定向爬蟲例項
第乙個大學 第n個大學 import requests from bs4 import beautifulsoup import bs4 def gethtmltext url 輸入url,返回html try r requests.get url,timeout 30 r.raise for st...
爬蟲例項(中國大學排名定向排名)
功能 輸出 大學排名資訊的螢幕輸出 排名,大學名稱,總分 技術路線 requests bs4 定向爬蟲 僅對輸入的url進行爬取,不擴充套件爬取 步驟 1.從網路上獲取大學排名網頁內容 2.提取網頁中資訊到合適的資料結構 3.利用資料結構展示並輸出結果 程式的結構設計 1.從網路上獲取大學排名網頁內...
爬蟲 中國大學排名定向爬蟲例項
最好大學排名 輸出 大學排名資訊的螢幕輸出 排名,大學名稱,總分 技術路線 requests bs4 定向爬蟲 僅對輸入url進行爬取,不擴充套件爬取 bs4只能獲取靜態url資訊 步驟1 從網路上獲取大學排名網頁內容 定義gethtmltext 步驟2 提取網頁內容中資訊到合適的資料結構 定義fi...