今天趁机一鼓作气,把简单爬虫内容一次学习完毕,最后以爬取酷狗音乐排行榜歌曲作为结束,然后对此次学习做一个整理和总结。而且前两篇有些混乱,这里把内容做一次阶段性总结。

一、安装包

爬虫三大包: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 '男'

爬虫训练(三):爬取酷狗音乐相关推荐

  1. Python爬虫案例:爬取酷狗音乐全排行榜歌曲

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次目标 爬取酷狗音乐全站排行榜歌曲 目标地址 https://www.ku ...

  2. python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  3. python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  4. python爬虫教程:爬取酷狗音乐

    本篇针对爬虫零基础的小白,所以每一步骤我都截图并详细解释了,其实我自己看着都啰嗦,归根到底就是两个步骤的请求,还请大佬绕路勿喷. 1.打开酷狗官网,可以看到搜索框,我们要爬取的数据就是搜索歌曲后,酷狗 ...

  5. Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)

    在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...

  6. Python爬虫之爬取酷狗音乐歌曲

    Python爬虫之爬取酷狗音乐歌曲 1.安装第三方库 在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下 ...

  7. Python爬虫入门——2. 2爬取酷狗音乐top1-500歌曲信息

    有了第一个程序的基础,我们现在来爬取酷狗音乐top500的歌曲信息.连接http://www.kugou.com/yy/rank/home/1-8888.html 我们第一个程序只爬取了一个页面的数据 ...

  8. python3爬虫实例(一)---爬取酷狗TOP500的音乐信息

    前言 学习完requests库与beautifulsoup这个库后,我们就可来搞一个简单的爬虫了,这次我们爬取酷狗音乐的TOP500的歌曲信息,包含排名,歌名,歌曲时长.分分钟爬取下来. 分析URL链 ...

  9. Python爬虫爬取酷狗音乐TOP500

    Python大作业 内容简介: 用Python来爬取酷狗音乐TOP500的歌曲信息,统计这500首歌曲中出现的所有歌手,并做可视化处理生成词云 实验代码: import time import req ...

最新文章

  1. Python基础(10)--数字
  2. 德国汽车厂发生机器人杀人事件 人机协作是大势所趋
  3. [Leedcode][JAVA][第67题][二进制求和][位运算][字符串]
  4. after不显示_web前端入门到实战:css实现单行、多行文本超出显示省略号
  5. 5.携程架构实践 --- 框架中间件
  6. freemarker在线编辑
  7. NAT穿透-P2P-UDP打洞
  8. MAYA安装包+安装教程
  9. 2018美赛B题翻译
  10. php写幻灯片,JavaScript原生代码实现幻灯片
  11. 摘录 | WAREZ无形帝国
  12. java网上购物系统_Java Web 应用教程——网上购物系统的实现
  13. 数据结构:图(基础概念及操作,图文解释)
  14. 织梦Dedecms源码文件夹目录模板解释说明
  15. 云计算体系结构中soa构建层_云计算架构分为哪几层 云计算具体学什么
  16. 使用Android Studio 创建第一个Android 应用
  17. hdu-4565(矩阵快速幂+推导)
  18. 2020国内可用的android镜像网站
  19. 我实测了国内外GPT,问了10个问题,差点把电脑砸了...
  20. 程序员的高效工作场所

热门文章

  1. 比较贵的计算机软件,公认的最良心最好用的11款电脑软件 全部发给你
  2. python提取指定内容
  3. 23种设计模式学习文档
  4. 这才是游戏本推荐排行榜榜首的正确打开方式!
  5. linux创建tun接口,linux – 带有Tun接口的I/O.
  6. 重组、中国、交付、合作,传统汽车巨头发动新「攻势」
  7. 阿里怒砸1000亿成立研究院,马云谈及这5大问题
  8. けーしん的动漫插画作品
  9. 37岁前女雇员揭露Facebook滔天罪行:用算法赚钱
  10. 15分钟实战机器学习:验证码(CAPTCHA)识别