1、安装与开发环境

模块安装:

bs4 解析库安装:pip install bs4

开发环境:

python 3.x + pycharm

ps:文章来源于小编的头条号:“python数据科学频道”,
想在手机端方便看文章的朋友可以去关注我的头条号。

2、实训代码如下:

from bs4 import BeautifulSoup
import urllib.request
# -------------------------- 基础库 -------------------------------------
url = 'http://www.imooc.com/course/list?c=python&page=1'
# 设置头文件,将爬虫模拟成浏览器的行为去爬取信息
heads = {'Connection': 'keep-alive','Accept-Language': 'zh-CN,zh;q=0.9','Accept': 'text/html,application/xhtml+xml,application/xml;\q=0.9,image/webp,image/apng,*/*;q=0.8','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36\ (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
}
headall = []
for key,value in heads.items():items = (key,value)headall.append(items)# 创建opener对象
opener = urllib.request.build_opener()
# 添加头文件到opener对象
opener.addheaders = headall
# 将opener对象设置成全局模式
urllib.request.install_opener(opener)
# 将数据读取到data
data = opener.open(url).read()
# print(data)# --------------------------- 解析提取库 --------------------------------
# 创建soup对象
soup = BeautifulSoup(data,'lxml')
# print(soup)
# 匹配课程名称
coursenames = soup.find_all('h3',class_="course-card-name")
# print(coursenames)
# 匹配课程链接
links = soup.find_all('a',class_="course-card")
# print(links)name, lk, x= [], [], 1
# 将名称添加至name列表中
for coursename in coursenames:coursenames = coursename.get_text()name.append(coursenames)x += 1  # 主要是为了确认有多少门课
# print(name)# 将链接添加至lk列表中
for link in links:links = 'https://www.imooc.com'+str(link['href'])lk.append(links)
# print(lk)# 用循环遍历出课程名称以及链接
for i in range(x-1):print('第',(i+1),'门课程:','名称:',name[i],'    ',lk[i])

3、程序运行结果如下:

第 1 门课程: 名称: 走进Python量化交易--入门篇      https://www.imooc.com/learn/1054
第 2 门课程: 名称: Python 异步任务队列 Celery 使用   https://www.imooc.com/learn/1051
第 3 门课程: 名称: python运维-Socket网络编程   https://www.imooc.com/learn/1031
第 4 门课程: 名称: Python最火爬虫框架Scrapy入门与实践   https://www.imooc.com/learn/1017
第 5 门课程: 名称: TensorFlow与Flask结合打造手写体数字识别   https://www.imooc.com/learn/994
第 6 门课程: 名称: 区块链技术核心概念与原理讲解    https://www.imooc.com/learn/988
第 7 门课程: 名称: Python实现线性回归      https://www.imooc.com/learn/972
第 8 门课程: 名称: Python人工智能常用库Numpy使用入门    https://www.imooc.com/learn/943
第 9 门课程: 名称: Python制作数据分析工具    https://www.imooc.com/learn/937
第 10 门课程: 名称: python必学模块-collections   https://www.imooc.com/learn/934
第 11 门课程: 名称: Python 全栈案例初体验   https://www.imooc.com/learn/864
第 12 门课程: 名称: python自动化运维篇     https://www.imooc.com/learn/853
第 13 门课程: 名称: Python数据分析-基础技术篇     https://www.imooc.com/learn/843
第 14 门课程: 名称: 机器学习-实现简单神经网络    https://www.imooc.com/learn/813
第 15 门课程: 名称: django入门与实践      https://www.imooc.com/learn/790
第 16 门课程: 名称: python-web.py开发入门    https://www.imooc.com/learn/753
第 17 门课程: 名称: Python-面向对象      https://www.imooc.com/learn/747
第 18 门课程: 名称: Python-走进Requests库   https://www.imooc.com/learn/736
第 19 门课程: 名称: 初识机器学习-理论篇   https://www.imooc.com/learn/717
第 20 门课程: 名称: python遇见数据采集     https://www.imooc.com/learn/712
第 21 门课程: 名称: python装饰器    https://www.imooc.com/learn/581
第 22 门课程: 名称: Python开发简单爬虫     https://www.imooc.com/learn/563
第 23 门课程: 名称: python正则表达式      https://www.imooc.com/learn/550
第 24 门课程: 名称: PyConChina 2015 中国大会 北京场     https://www.imooc.com/learn/532
第 25 门课程: 名称: Python错误和异常      https://www.imooc.com/learn/457
第 26 门课程: 名称: Python操作MySQL数据库     https://www.imooc.com/learn/475
第 27 门课程: 名称: django初体验    https://www.imooc.com/learn/458
第 28 门课程: 名称: Python文件处理   https://www.imooc.com/learn/416
第 29 门课程: 名称: Python开发环境搭建     https://www.imooc.com/learn/397
第 30 门课程: 名称: python进阶     https://www.imooc.com/learn/317

4、程序代码分析如下:

1、关键在于理解bs4的解析提取的方法

"课程名称"的网址源代码:

<h3 class="course-card-name">走进Python量化交易--入门篇</h3>

"课程链接"的原网址代码:

<a target="_blank" href="/learn/1054" class="course-card">

2、bs4介绍
创建soup对象
soup = BeautifulSoup(data,‘lxml’)

这里的属性 class 要加上一个下划线,因为 class 是python内置的关键字,不能直接使用

匹配课程名称
coursenames = soup.find_all(‘h3’,class_=“course-card-name”)
匹配课程链接
links = soup.find_all(‘a’,class_=“course-card”)

-------------------------------------------- 文章到此结束------------------------------------------

python爬虫实例练习:爬取慕课网课程名称以及对应的链接相关推荐

  1. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

  2. python抓取文献关键信息,python爬虫——使用selenium爬取知网文献相关信息

    python爬虫--使用selenium爬取知网文献相关信息 写在前面: 本文章限于交流讨论,请不要使用文章的代码去攻击别人的服务器 如侵权联系作者删除 文中的错误已经修改过来了,谢谢各位爬友指出错误 ...

  3. Python爬虫学习笔记 (9) [初级] 小练习 爬取慕课网课程清单

    更新日期: 2021.03.28 本节学习内容 : 练习使用 bs4 和 xlwings - 爬取慕课网免费课程清单并存为 Excel 文件. 目录 1. 目标信息 2. 爬取步骤 3. 代码 5. ...

  4. Python爬虫实例: 爬取“最好大学网”大学排名

    实例2 爬取大学排名 上海交通大学设计了一个"最好大学网",上面列出了当前的大学排名.我们要设计爬虫程序,爬取大学排名信息. 爬虫功能要求: 输入:大学排名URL链接 输出:大学排 ...

  5. python爬虫 requests+lxml爬取前程无忧网之模拟浏览器登录

    "前程无忧"(Nasdaq: JOBS) : 是国内一个集多种媒介资源优势的专业人力资源服务机构,创始人为甄荣辉.它集合了传统媒体.网络媒体及先进的信息技术,加上一支经验丰富的专业 ...

  6. Python爬虫实战:爬取贝壳网二手房40000条数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于啤酒就辣条 ,作者啤酒就辣条 一.网页分析 爬取贝壳网石家庄二 ...

  7. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)

    今天我们来爬取一下豆瓣网上排名前250的电影. 需求:爬取豆瓣网上排名前250的电影,然后将结果保存至一个记事本里. 开发环境: python3.9 pycharm2021专业版 我们先观察网页,看看 ...

  8. Python爬虫实例:爬取微信公众号图片(表情包)

    背景: 在学习了简单爬虫的编写之后,我试图通过编写爬取公众号图片(表情包)来丰富我的聊天技能,亦不致于败给各种熊猫头. 在学习了requests库之后,就能够很轻松地爬取静态页面的信息,把网页对象获取 ...

  9. Python爬虫实战之爬取web网易云音乐——解析

    找到存储歌曲地址的url界面 首先我们要进入网易云的web页面在页面中我们随意选择一首歌曲,打开开发者工具查看响应的界面. 在这些页面中我们需要查找存储有音乐文件的url,这是我们可以打开全局搜索直接 ...

最新文章

  1. java rgb hsl_RGB、HSB、HSL 互相转换算法
  2. IDEA 项目结构旁边出现 0%classes,0% lines covered
  3. 【渝粤题库】陕西师范大学152103 公共行政学
  4. screen的一些常用命令和快捷键
  5. 你是否了解新媒体,新媒体简介
  6. 关于面向对象的真面目
  7. 我写了个微信抽奖程序
  8. 信息入口的新闻客户端如何盈利?
  9. 入门级node+uni-app开发即时通讯聊天室(3)用户的搜索以及好友添加(二)
  10. 蓝牙防水耳机排行榜前十名,防水音质表现好的蓝牙耳机推荐
  11. 区块链入门教程(4)--搭建单机四节点FISCO BCOS联盟链
  12. 除夕跨年烟花特效[原创]
  13. 计算机管理 位置不可用,Win10系统文件打不开提示位置不可用拒绝访问如何解决...
  14. 关于switch的一些理解
  15. WebStorm/IDEA 激活证书服务器
  16. 核雕图案的寓意(上)
  17. Swift - iOS应用的国际化与本地化
  18. Spring基本用法1——Spring的核心机制:IOC、DI
  19. 【平面设计基础】12:ACR调色
  20. 武汉二手房价分析(原创分析,数据现势性2018年6月)

热门文章

  1. 简单冲裁模、连续冲裁模、复合冲裁模,你搞懂了吗?
  2. 【经验分享】怎么流畅地在Coursera上看视频?
  3. C#关于打印90度转换
  4. 准确的汽车识别技术(适应非结构化道路,可以实现实时汽车主动安全系统)
  5. mysql在虚拟机环境下突然找不到数据库
  6. 座位选座的java代码_基于jQuery实现在线选座之高铁版
  7. 王欣、张一鸣、罗永浩旗下公司三款社交产品于2019年1月15日发布
  8. Lock锁的方法使用
  9. PCB如何添加3D模型
  10. 对视图的对角线切割DiagonalView