python爬蟲(五):實戰 【3. 使用正則來爬創客實驗室】
依然爬取創科實驗室網站中講座的資訊(只爬標題,其它同)
但技術上採用requests+正則表示式
思想:
#通過正則表示式,獲取講座標題 規則:<h3>中文字元出現4次 任意字元</h3>
m = str(re.findall('<h3>[\u4e00-\u9fff]{4}.+</h3>',html))
# str轉換為字元,分割兩次得到講座標題
n = m.split(':')[1].split('<')[0]
n
結果:
完整程式碼:
import requests
import re
titlelist = []
# 獲取頁面
for i in range(1,17):
url = 'http://127.0.0.1/lab/lectureContent/' + str(i)
r = requests.get(url)
r.encoding = r.apparent_encoding
html = r.text
#通過正則表示式,獲取講座標題 規則:<h3>中文字元出現4次 任意字元</h3>
j = str(re.findall('<h3>[\u4e00-\u9fff]{4}.+</h3>',html))
# str轉換為字元,分割兩次得到講座標題
m = j.split(':')[1].split('<')[0]
#通過正則表示式,獲取報告人 規則:<h5>中文字元出現3次 任意字元</h5>
k = str(re.findall('<h5>[\u4e00-\u9fff]{3}.+</h5>',html))
# str轉換為字元,同樣分割兩次
n = k.split(':')[1].split('<')[0]
titlelist.append([m,n])
titlelist
結果:
也可輸出一張表,放在D盤
# 輸出為表
import pandas as pd
table = pd.DataFrame(data=titlelist,columns=['講座標題','報告人'])
table.to_csv('D:/2.csv',index=0)