python爬虫实例练习:爬取慕课网课程名称以及对应的链接
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爬虫实例练习:爬取慕课网课程名称以及对应的链接相关推荐
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)
在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...
- python抓取文献关键信息,python爬虫——使用selenium爬取知网文献相关信息
python爬虫--使用selenium爬取知网文献相关信息 写在前面: 本文章限于交流讨论,请不要使用文章的代码去攻击别人的服务器 如侵权联系作者删除 文中的错误已经修改过来了,谢谢各位爬友指出错误 ...
- Python爬虫学习笔记 (9) [初级] 小练习 爬取慕课网课程清单
更新日期: 2021.03.28 本节学习内容 : 练习使用 bs4 和 xlwings - 爬取慕课网免费课程清单并存为 Excel 文件. 目录 1. 目标信息 2. 爬取步骤 3. 代码 5. ...
- Python爬虫实例: 爬取“最好大学网”大学排名
实例2 爬取大学排名 上海交通大学设计了一个"最好大学网",上面列出了当前的大学排名.我们要设计爬虫程序,爬取大学排名信息. 爬虫功能要求: 输入:大学排名URL链接 输出:大学排 ...
- python爬虫 requests+lxml爬取前程无忧网之模拟浏览器登录
"前程无忧"(Nasdaq: JOBS) : 是国内一个集多种媒介资源优势的专业人力资源服务机构,创始人为甄荣辉.它集合了传统媒体.网络媒体及先进的信息技术,加上一支经验丰富的专业 ...
- Python爬虫实战:爬取贝壳网二手房40000条数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于啤酒就辣条 ,作者啤酒就辣条 一.网页分析 爬取贝壳网石家庄二 ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)
今天我们来爬取一下豆瓣网上排名前250的电影. 需求:爬取豆瓣网上排名前250的电影,然后将结果保存至一个记事本里. 开发环境: python3.9 pycharm2021专业版 我们先观察网页,看看 ...
- Python爬虫实例:爬取微信公众号图片(表情包)
背景: 在学习了简单爬虫的编写之后,我试图通过编写爬取公众号图片(表情包)来丰富我的聊天技能,亦不致于败给各种熊猫头. 在学习了requests库之后,就能够很轻松地爬取静态页面的信息,把网页对象获取 ...
- Python爬虫实战之爬取web网易云音乐——解析
找到存储歌曲地址的url界面 首先我们要进入网易云的web页面在页面中我们随意选择一首歌曲,打开开发者工具查看响应的界面. 在这些页面中我们需要查找存储有音乐文件的url,这是我们可以打开全局搜索直接 ...
最新文章
- java rgb hsl_RGB、HSB、HSL 互相转换算法
- IDEA 项目结构旁边出现 0%classes,0% lines covered
- 【渝粤题库】陕西师范大学152103 公共行政学
- screen的一些常用命令和快捷键
- 你是否了解新媒体,新媒体简介
- 关于面向对象的真面目
- 我写了个微信抽奖程序
- 信息入口的新闻客户端如何盈利?
- 入门级node+uni-app开发即时通讯聊天室(3)用户的搜索以及好友添加(二)
- 蓝牙防水耳机排行榜前十名,防水音质表现好的蓝牙耳机推荐
- 区块链入门教程(4)--搭建单机四节点FISCO BCOS联盟链
- 除夕跨年烟花特效[原创]
- 计算机管理 位置不可用,Win10系统文件打不开提示位置不可用拒绝访问如何解决...
- 关于switch的一些理解
- WebStorm/IDEA 激活证书服务器
- 核雕图案的寓意(上)
- Swift - iOS应用的国际化与本地化
- Spring基本用法1——Spring的核心机制:IOC、DI
- 【平面设计基础】12:ACR调色
- 武汉二手房价分析(原创分析,数据现势性2018年6月)