爬虫训练(三):爬取酷狗音乐
今天趁机一鼓作气,把简单爬虫内容一次学习完毕,最后以爬取酷狗音乐排行榜歌曲作为结束,然后对此次学习做一个整理和总结。而且前两篇有些混乱,这里把内容做一次阶段性总结。
一、安装包
爬虫三大包:requests、lxml、BeautifulSoup,根据自己的python配置情况进行安装,这里不再赘述。
二、爬虫简单尝试——爬取整个网页内容
1.请求头的查找
具体参考文章:爬虫训练:第一次真好~
2.简单爬虫代码
代码如下:
import requests
from bs4 import BeautifulSoup
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}#请求头
res=requests.get('https://zhidao.baidu.com/',headers=headers)#请求网址
res.encoding='GBK'#解决爬取内容乱码
print(res.text)
这种爬虫方式容易出现乱码,可以添加一段代码解决,具体原因和解决方案参考:爬虫训练(二):乱码问题
三、爬取具体元素
1.select函数定义元素位置
具体参考文章:爬虫训练:第一次真好~
2.爬取具体元素代码
代码如下:
import requests
from bs4 import BeautifulSoup
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}#请求头
res=requests.get('https://zhidao.baidu.com/',headers=headers)#请求网址
soup=BeautifulSoup(res.text,'lxml') #解析数据
authors=soup.select('#body > div.wgt-two-layout > div > div.wgt-two-layout-left > div > div.rank-list > div:nth-child(2)') #定位元素
#res.encoding = res.apparent_encoding#解决爬出内容乱码
res.encoding='GBK'#解决爬取内容乱码
#print(type(authors))
#print(authors)
for author in authors:print(author.get_text()) #这里对该段命令进行重复,保证所有符合的元素都被爬取
这部分在操作时,结果再次出现乱码,即使加入代码也无法解决,后来根据搜索的内容和请教,似乎和jupyter编辑器有关,于是这里管段换成pycharm,在之后爬取酷狗音乐的时候,问题迎刃而解决,所以如果碰到同样的问题时,建议换成pycharm。
四、爬取酷狗音乐
代码如下:
#导入包
import requests
from bs4 import BeautifulSoup
import time#请求头
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}#定义获取信息的函数
def get_info(url):wb_data = requests.get(url, headers=headers)soup = BeautifulSoup(wb_data.text, 'lxml')ranks = soup.select('span.pc_temp_num')# rankWrap > div.pc_temp_songlist > ul > li:nth-child(1) > span.pc_temp_num > strong# rankWrap > div.pc_temp_songlist > ul > li:nth-child(2) > span.pc_temp_num > strongtitles = soup.select('#rankWrap > div.pc_temp_songlist > ul > li > a')# rankWrap > div.pc_temp_songlist > ul > li:nth-child(1) > a# rankWrap > div.pc_temp_songlist > ul > li:nth-child(2) > afor rank, title in zip(ranks, titles):data = {"rank": rank.get_text().strip(),"singer": title.get_text().split('-')[0],'song': title.get_text().split('-')[0]}#通过split获取歌手和歌曲信息print(data)#获取爬虫信息并按字典格式打印#主程序入口
if __name__=='__main__':urls = ['https://www.kugou.com/yy/rank/home/1-8888.html'.format(str(i)) for i in range(1, 2)]#构造多页urlfor url in urls:get_info(url)#循环调用get_info()函数time.sleep(1)#爬虫完成后休息1秒,避免请求网页过频导致爬虫失败
结果如下:
这里有几个容易出错的点:
1.主程序入口name和main两侧的“_”是两个,这里注意格式正确。
2.定位元素位置加入了完整内容的注释,用于和最后成功代码做对比,可以看出想要爬出合适的数据,定位元素不能照抄,需要作出适当的调整,而且适当调整后出来的结果会更加整洁漂亮。同时,如果可以直接找对应位置那段,可以直接拿来用。
五、总结(个人问题总结,可以略过)
1.酷狗音乐部分还有许多代码含义不够清晰,只是会用。
2.操作过程中的错误并没有搞清楚原因,比如乱码、pycharm使用熟练度。
3.参考书还有另外一个例子,里面有段和图片人的性别辨别有关的代码,这里单纯总结出来。
sexs=soup.select('')
for sex:data={'sex':judgment_sex(sex.get('class'))}def judgment_sex(class_name):if class_name == ['member_icol']:return '女'elif:return '男'
爬虫训练(三):爬取酷狗音乐相关推荐
- Python爬虫案例:爬取酷狗音乐全排行榜歌曲
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次目标 爬取酷狗音乐全站排行榜歌曲 目标地址 https://www.ku ...
- python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...
- python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...
- python爬虫教程:爬取酷狗音乐
本篇针对爬虫零基础的小白,所以每一步骤我都截图并详细解释了,其实我自己看着都啰嗦,归根到底就是两个步骤的请求,还请大佬绕路勿喷. 1.打开酷狗官网,可以看到搜索框,我们要爬取的数据就是搜索歌曲后,酷狗 ...
- Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...
- Python爬虫之爬取酷狗音乐歌曲
Python爬虫之爬取酷狗音乐歌曲 1.安装第三方库 在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下 ...
- Python爬虫入门——2. 2爬取酷狗音乐top1-500歌曲信息
有了第一个程序的基础,我们现在来爬取酷狗音乐top500的歌曲信息.连接http://www.kugou.com/yy/rank/home/1-8888.html 我们第一个程序只爬取了一个页面的数据 ...
- python3爬虫实例(一)---爬取酷狗TOP500的音乐信息
前言 学习完requests库与beautifulsoup这个库后,我们就可来搞一个简单的爬虫了,这次我们爬取酷狗音乐的TOP500的歌曲信息,包含排名,歌名,歌曲时长.分分钟爬取下来. 分析URL链 ...
- Python爬虫爬取酷狗音乐TOP500
Python大作业 内容简介: 用Python来爬取酷狗音乐TOP500的歌曲信息,统计这500首歌曲中出现的所有歌手,并做可视化处理生成词云 实验代码: import time import req ...
最新文章
- Python基础(10)--数字
- 德国汽车厂发生机器人杀人事件 人机协作是大势所趋
- [Leedcode][JAVA][第67题][二进制求和][位运算][字符串]
- after不显示_web前端入门到实战:css实现单行、多行文本超出显示省略号
- 5.携程架构实践 --- 框架中间件
- freemarker在线编辑
- NAT穿透-P2P-UDP打洞
- MAYA安装包+安装教程
- 2018美赛B题翻译
- php写幻灯片,JavaScript原生代码实现幻灯片
- 摘录 | WAREZ无形帝国
- java网上购物系统_Java Web 应用教程——网上购物系统的实现
- 数据结构:图(基础概念及操作,图文解释)
- 织梦Dedecms源码文件夹目录模板解释说明
- 云计算体系结构中soa构建层_云计算架构分为哪几层 云计算具体学什么
- 使用Android Studio 创建第一个Android 应用
- hdu-4565(矩阵快速幂+推导)
- 2020国内可用的android镜像网站
- 我实测了国内外GPT,问了10个问题,差点把电脑砸了...
- 程序员的高效工作场所