import requests
from bs4 import beautifulsoup
import bs4
alluniv=
#全部大學的資訊
deffindtd
(soup)
:#獲取資訊
for tr in soup.find(
'tbody'
).children:
#查詢tbody的全部子結點即是tr標籤
ifisinstance
(tr,bs4.element.tag)
:#排除不是tag標籤的
tdall=tr.find_all(
'td'
) a=tdall[1]
.find(
'a')
.string.strip(
)#d大學名字
b=tdall[0]
.contents[0]
.strip(
)#排名
c = tdall[2]
.contents[0]
.strip(
)#省份
d = tdall[3]
.contents[0]
.strip(
)#型別
f = tdall[4]
.contents[0]
.strip(
)# 總分
e = tdall[5]
.contents[0]
.strip(
)#辦學層次
[b,a,c,d,f,e]
)#乙個學校的資訊 存入總資訊 列表的乙個元素即乙個學校的資訊
'''def printallun(num):
print("".format("排名","學校名稱","省市","型別","總分","辦學層次"))
for i in range(num):
u=alluniv[i]#單個學校的資訊
print("".format(u[0],u[1],u[2],u[3],u[4],u[5]))
'''def
printallun
(num)
:#格式化輸出
print
("\t\t\t\t\t"
.format
("排名"
,"學校名稱"
,"省市"
,"型別"
,"總分"
,"辦學層次"
,chr
(12288))
)for i in
range
(num)
: info=alluniv[i]
print
("\t\t\t\t\t"
.format
(info[0]
, info[1]
, info[2]
,info[3]
,info[4]
,info[5]
,chr
(12288))
)def
gethtmltext
(url)
:#請求網頁 並獲取源**
try:
r=requests.get(url,timeout=30)
r.raise_for_status(
) r.encoding=
'utf-8'
return r.text
except
:return
''def
main
(num)
:#主函式
url=
''html=gethtmltext(url)
soup=beautifulsoup(html,
'html.parser'
) findtd(soup)
printallun(num)
main(
10)
2023年最新Python開發的高階技巧,面試必學
如果使用with,可以簡化為兩行 自定義上下文管理器確實很方便,但是python標準庫還提供了更易用的上下文管理器工具模組contextlib,它是通過生成器實現的,我們不必再建立類以及 enter 和 exit 這兩個特殊的方法 2.total ordering。對比自定義物件需要新增 lt le...
爬取最新疫情資料
題目 程式設計爬取每日最新的疫情統計資料。並將爬取結果匯入到資料庫中。將視覺化結果與統計資料結合,實時顯示當前最新資料。這次的作業與上次周的視覺化可以整合成乙個完整的 只需要在這次加上python爬取資料即可 爬取的 如下 1 from os import path 2import requests...
2020最新最全Python面試題整理(五)
1 描述一下scrapy框架的執行機制?2 寫爬蟲使用多程序好,還是用多執行緒好?3 常見的反爬蟲和應對方法?基於使用者行為,同乙個ip段時間多次訪問同一頁面 利用 ip,構建ip池 請求頭里的user agent 構建user agent池 作業系統 瀏覽器不同,模擬不同使用者 動態載入 抓到的資...