更新日期: 2021.03.28
本节学习内容 :
练习使用 bs4 和 xlwings - 爬取慕课网免费课程清单并存为 Excel 文件。
1. 目标信息
- 目标网站:https://www.imooc.com/
- 目标信息:所有免费课程的名称,链接,方向,分类,讲师,难度,时长等。
2020.03.28日 慕课网免费课程清单有20个网页, 每页有40个课程, 点击课程的链接可进一步获取课程的难度和时长等信息。
2. 爬取步骤
- 获取免费课程清单首页的代码, 解析出课程名称和链接等信息
- 处理从清单首页获得链接 - 打开每个链接, 获取课程难度和时长等信息
- 使用同样的方法处理余下的清单页面及链接
3. 代码
学习了几种爬虫工具,然后做小练习,已经预计到会遇到问题,没想到…那么多…
大部分是因为自己的粗心,小部分是真的不知道…
import requests
from requests.exceptions import RequestException
from bs4 import BeautifulSoup
import re
import time
import random
import xlwings as xw
headers={
'User Agent': 'replace with your header'}
course_names, course_links =[], []
# 获取一个网页的代码
def get_one_page(url):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200: # 检查状态是否正常,只有"200"代码表示正常状态
html = response.text
return html
else:
print("Failed to get website codes due to status_code nok")
except RequestException:
print("Exception found when get website codes, maybe no more link to be worked on~")
def fetch_info():
# 依次打开19个课程清单页面,获取课程名称及链接,并存储在列表中
for list_page_num in range