这几天爬取了course动态网页的课程信息,有关数据分析,机器学习,还有概率论和数理统计课程,这里数据过多,只对数据分析的模块进行了详细爬取。为之后的数据分析以及机器学习情感处理进行数据获取,下面直接上代码和截图:
1.大模块页面
页面如下:
爬取代码:
# encoding: utf-8
from selenium import webdriver
import csv
class GetModel():
'''
类功能介绍:获取每页每个大模块的类型,标题,url
类成员变量:browser对象,每页的url
类成员函数:初始化函数__init__,获取每个大模块信息的函数getEveryModel,写入csv的函数saveToCsv
'''
def __init__(self,url):
self.__browser = webdriver.Chrome()
self.__page_url = url
def saveToCsv(self,this_list):
with open("model.csv", "a", newline='', encoding='utf-8') as f:
writer = csv.writer(f, delimiter=',')
writer.writerow(this_list)
def getEveryModel(self):
# 隐式等待
self.__browser.implicitly_wait(30)
self.__browser.get(self.__page_url)
model_type = self.__browser.find_elements_by_css_selector(".product-type-row.horizontal-box")
model_title = self.__browser.find_elements_by_css_selector(".color-primary-text.card-title.headline-1-text")
model_url = self.__browser.find_elements_by_css_selector(".rc-DesktopSearchCard.anchor-wrapper.browse-result-card")
for i in range(len(model_type)):
every_model = []
every_model.append(model_type[i].text)
every_model.append(model_title[i].text)
every_model.append(model_url[i].get_attribute('href'))
self.saveToCsv(every_model)
def closeUrl(self):
self.__browser.close()
结果如下:
2.每个大模块中小模块的简单信息
页面如下:
查看全部的信息要先模拟点击查看所有页面:
代码如下:
# encoding: utf-8
from selenium import webdriver
import csv
import time
class GetCourse():
'''