利用BeautifulSoup库构建一个简单的网络爬虫,从中文歌词库网站抓取凤凰传奇所有曲目的歌词(http://www.cnlyric.com/geshou/1927.html)。

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
import numpy
import csvstarturl="http://www.cnlyric.com/geshou/1927.html" # 凤凰传奇歌词地址第一页# 找出下一页的链接
def findnextlinks(starturl,nextlinks):""" 该函数用于从starturl页面开始,递归找出所有“下一页”的链接地址要求nextlinks为一个空的列表"""try:html=urlopen(starturl)bsobj=BeautifulSoup(html,"lxml")nextpagelink=bsobj.find("div",{"class":"PageList"}).input.\previous_sibling.previous_sibling.attrs["href"]nextlink="http://www.cnlyric.com/geshou/"+nextpagelinknextlinks.append(nextlink)findnextlinks(nextlink,nextlinks)except:print("\n所有“下一页”的链接寻找完毕")return nextlinksnextlinks=[]
nextlinks=findnextlinks(starturl,nextlinks) # 所有“下一页”的链接列表# 找出存放歌词的链接列表
def findlrclinks(urllists):""" 该函数用于找出列表urllists中的链接页面上存放歌词的链接 """Sites=[]for urllist in urllists:html=urlopen(urllist)bsobj=BeautifulSoup(html,"lxml")for link in bsobj.findAll(href=re.compile("^(../LrcXML/)")):site="http://www.cnlyric.com"+link.attrs["href"].lstrip("..")Sites.append(site)return Sitesnextlinks.insert(0,starturl) # 将开始页面也加入链接列表中
Sites=findlrclinks(nextlinks) # 找出所有存放歌词的链接
print("\n所有曲目歌词所在的xml文件链接寻找完毕")def getlrc(lrclink):""" 该函数用于找出歌词链接lrclink中的歌词,并以列表形式保存 """LRC=[]html=urlopen(lrclink)bsobj=BeautifulSoup(html,"lxml")lrcpre=bsobj.findAll("lrc")for lrclabel in lrcpre:lrc=lrclabel.get_text()LRC.append(lrc)return LRCcsvfile=open("凤凰传奇歌词集.csv","w+") # 创建csv文件用于保存数据
try:writer=csv.writer(csvfile)rowindex=1for lrcurl in Sites:LRC=getlrc(lrcurl)LRC.insert(0,str(rowindex).zfill(3))writer.writerow(LRC) # 将每首哥编号并将歌词写入从中文件中rowindex+=1
finally:csvfile.close() # 关闭csv文件

运行结果:

参考资料:Ryan Mitchell著,陶俊杰,陈小莉译《Python网络数据采集》

Python爬虫实践:从中文歌词库抓取歌词相关推荐

  1. Python爬虫实践(入门篇)——抓取《天使降临到我身边》图片

    今天就学了一下Python爬虫,于是想实践一下.刚好一周前在B站补完番<天使降临到我身边>--里面的小学生特可爱.情节也不错,心里就比较喜欢这部漫画,所以就想扒一些图片当壁纸.刚好,Pyt ...

  2. python爬取app播放的视频,Python爬虫工程师必学——App数据抓取实战视频教程

    爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭建,App爬虫必备利器详解,项目实战,到最后的多App ...

  3. Python爬虫 | 斗图网表情包抓取

    Python爬虫 | 斗图网表情包抓取 1.数据来源分析 2.制作div_list 3.发起请求 4.保存图片 5.批量获取 6.完整代码 声明 1.数据来源分析   打开斗图吧的主页,发现网址非常有 ...

  4. Python爬虫实战(4):抓取淘宝MM照片

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  5. Python爬虫之js加密破解,抓取网易云音乐评论生成词云

    js破解历程 前言 技能点 界面概况 静态网页动态网页 页面解析 step1: 找参数step2:分析js函数step3:分析参数step4: 校验step5:转为python代码 编写爬虫 很多人学 ...

  6. python爬虫之js链接跳转抓取_Python爬虫获取页面所有URL链接过程详解

    如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL. 什么是Beautiful Soup ...

  7. Python爬虫: 用urllib2+beautifulsoup写的抓取网页内容的示例

    BeautifulSoup是一个可以解析HTML或XML内容的python库,和java的Dom4j有点类似.当用urllib2抓取到网页的HTML源码之后,调用beautifulSoup的API就可 ...

  8. Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺

    其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  9. python 爬虫课程推荐_关于递归抓取的课程推荐

    Python爬虫包 BeautifulSoup 递归抓取实例详解概要:爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到另一个 ...

最新文章

  1. 【Android】全角字符半角字符工具类
  2. pycharm管理多个工程
  3. mysql多实例安装配置演示
  4. Fiddler抓包使用教程-QuickExec
  5. 使用python实现对于chineseocr的API调用
  6. 假如Python有C/C++ 的性能,会不会称霸IT界?
  7. SQL FILESTREAM与数据库快照,镜像,TDE和日志传送的兼容性
  8. python display方法_在Python中縮放和顯示圖像的最快方法是什么?
  9. 现代密码学第一次实验:线性移位寄存器
  10. 英语魔法师之语法俱乐部 | 笔记2 | 初级句型—简单句 | Chapter1—基本句型及补语
  11. 论文阅读:Action Genome: Actions as Composition of Spatio-temporal Scene Graphs
  12. uniapp中制作战力计算器
  13. excel拆分表格之按指定行数拆分
  14. TASK1_高等数学
  15. pin ——pin tool代码注释 各pin tool的用途
  16. 全球人工智能工程师 冬令营火热招生ing
  17. 斐波那契数列 : 斐波那契凤尾
  18. 输入售价后点击计算税费,自动显示在税费输入框!
  19. CSS3制作摇晃的吊灯
  20. Individual tree segmentation and tree-counting using supervised clustering

热门文章

  1. 【问题已解决】Unrecognized option: --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
  2. 在线标定新思路!SST-Calib:最新Camera-Lidar时空同步标定算法(ITSC 2022)
  3. 【Java编程】Java关键字final使用详解
  4. linux 系统部署raid 5,CentOS 7.4搭建RAID5及测试实例
  5. MySQL主从互换策略(主down机切换从为和恢复过程中的倒增量备份)
  6. python检索用人名查电话_利用Python电话本小程序!这波操作你给几分?
  7. 阿里云ACP认证OSS专项(1)
  8. 百度竞价结果中显示出网站ICO图标…
  9. 经典面试题:翻转英文句子中单词的顺序
  10. 查看和修改电脑的ip地址