ウェブクローラは、中国の大学ランキングをクロールし、データベースに格納されています

#のCrawUnivRanjingA.pyの
インポート要求
BS4輸入BeautifulSoupから
輸入BS4が
輸入pymysql

デシベル= pymysql.connect(ホストは= "localhost"を、ユーザーが= "ルート"、パスワードは= "管理者"、DB = "テスト"、ポート= 3306)
印刷( '数据库连接成功')
カーソル= db.cursor()
#cursor.execute()
のSQL = "" "TABLE大雪を作成する(
#排名INT(3)NOT NULL、
#1学校名称CHAR(10)、
总分フロート(2)、
省市VARCHAR(10)) ""」





DEF getHTMLtEXT(URL):
試す:
R = requests.get(URL、タイムアウト= 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
戻りR。テキスト
を除く:
リターン「」

デフfillUnivList(ULIST、HTML):
= 0
スープ= BeautifulSoup(HTML、 "html.parser")
soup.find( 'TBODY')におけるTRの子:。
もしでisinstance(TR、bs4.element.Tag):
TDSの= TR( 'TD')
ULIST .append([TDS [0] .string、[1] .string TDS、TDS [3] .string、TDS [2] .string])
paiming = TDS [0] .text.strip()
xuexiaomingcheng = TDS [1 ] .text.strip()
zongfeng = TDS [3] .text.strip()
盛世= TDS [2] .text.strip()
20 <場合:
=( "INSERT INTO大雪(排名、学校名称、总insert_into分、省市) ""値(%sは、%sは、%sは、%sの)」)
data_into =(paiming、xuexiaomingcheng、zongfeng、盛世)
cursor.execute(insert_into、data_into)
db.commit()
A. 1 = +

DEF PrintUnivlist(ULIST、NUM):
TPLT =「{0:<10} \ T {<10} \ {1 :. 4} {2 T <10} \ {T. 3 < } 10 "
プリント(tplt.format("ランク""学校名""合計""地方「CHR(12288)))
レンジ(NUM)におけるiについて:
U = ULIST [i]の
印刷( tplt.format([1] [3] U [0]、U、U [2]、U、CHR(12288)))

DEFメイン():
のuInfo = []
URL =「HTTP://www.zuihaodaxue。 COM / zuihaodaxuepaiming2019.html「
HTML = getHTMLtEXT(URL)
fillUnivList(のuInfo、HTML)
PrintUnivlist(のuInfo、20である。)
メイン)


データベースに格納された後:

 

おすすめ

転載: www.cnblogs.com/doudouhaha521/p/11522076.html