依然爬取创科实验室网站中讲座的信息(只爬标题,其它同)
但技术上采用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)