1. 程式人生 > >python爬蟲(五):實戰 【3. 使用正則來爬創客實驗室】

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)