爬虫小实战:获取CCNU课程信息

爬取网址:http://spoc.ccnu.edu.cn/courseCenterController/showCourseCenterPage

代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import xlwt

#selenium爬虫头,通用
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0'
opt = webdriver.ChromeOptions()
opt.add_argument('--user-agent=%s' % user_agent)
web = webdriver.Chrome(options=opt)
# 打开网址
web.get('http://spoc.ccnu.edu.cn/courseCenterController/showCourseCenterPage')
x=input("进去了吗?")#页面载入后在程序窗口输入1回车
#创建列表来存放数据
types=['课程名称','主讲人','学院','域']
content=[]

for j in range(5):    #5代表爬取到第5页,可以改成别的数
    txt=web.find_elements(By.CLASS_NAME,"col-3")
    time.sleep(2)
    for i in txt:
        s=i.text.split()
        if len(s)==5:
            x = s[1]
            y = s[2]
            z = s[3]
            w = s[4]
            content+=[[x,y[4:],z[3:],w[2:]]]
        elif len(s)==4 :
            x = s[0]
            y = s[1]
            z = s[2]
            w = s[3]
            content += [[x, y[4:], z[3:], w[2:]]]
    time.sleep(1)
    page=web.find_element(By.CSS_SELECTOR,"#layui-laypage-0 > a.layui-laypage-next")
    page.click()
    time.sleep(5)

f = xlwt.Workbook('encoding = utf-8') #设置工作簿编码
sheet1 = f.add_sheet('sheet1',cell_overwrite_ok=True) #创建sheet工作表
for j in range(4):
    sheet1.write(0, j, types[j])#写入数据参数对应 行, 列, 值
for i in range(len(content)):
    for j in range(4):
        sheet1.write(i+1,j,content[i][j]) #写入数据参数对应 行, 列, 值
f.save('classtext.xls')

上述代码有多处可以优化,这里仅简单展示爬虫基本内容

posted @ 2022-05-25 08:35  往哉生生  阅读(32)  评论(0编辑  收藏  举报