要求:
- 爬取的链接:http://www.imooc.com/course/list
- 爬取的内容:课程链接,课程的图片url,课程的名称,学习人数,课程描述
- 爬取的内容如何存储:
- 文件(csv);
- mysql数据库;
- 分析爬取的信息;
- 词云
import re
import requests
import lxml.etree as etree
import csv
def get_content(url):
"""爬取页面内容的函数"""
try:
user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36"
response = requests.get(url, headers={'User-Agent': user_agent})
response.raise_for_status() # 如果返回的状态码不是200, 则抛出异常;
response.encoding = response.apparent_encoding # 判断网页的编码格式, 便于respons.text知道如何解码;
except Exception as e:
print("爬取错误")
else:
print(response.url)
print("爬取成功!")
return response.content
def parser_content(html):
"""分析页面获取需要的信息:课程链接, 课程的图片url, 课程的名称, 学习人数, 课程描述 """
# 1). 将html内容转化成xpath可以解析/匹配的格式;
selector = etree.HTML(html)
# 2). 获取每个课程的信息: <div class="course-card-container">
courseDetails = selector.xpath('//div[@class="course-card-container"]')
courseInfos = []
for courseDetail in courseDetails:
# 课程的名称: &