一、前言

自学爬虫有半年多了,终于能够实战演习了,废话不多说,上代码

二、爬取流程

1.引入库和请求头

代码如下(示例):

import requests
from lxml import etree
import numpy as np
headers = {'Cookie': 'UM_distinctid=178e82ba2444dc-0cb9a26a97da3f-5771133-144000-178e82ba245454; Hm_lvt_bc02eb340840027165940412a64ebe5f=1618802877,1619018423,1619078314,1619403459; Hm_lpvt_bc02eb340840027165940412a64ebe5f=1619405247; CNZZDATA1279031450=848942118-1618801300-%7C1619405256',
'Host':'www.igeciku.com','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'
}

2.编写主函数与子函数

代码如下(示例):

#获取专辑页面url的函数
def get_alubm_page(a,x):urls = []for x in range(1,x+1):url = 'https://www.igeciku.com/singer/album?singerId='+ str(a) + '&page={}'url = url.format(x)urls.append(url)urls = np.unique(urls)return urls
#获取专辑详情页面url的函数
def get_detail_alubm_page(a,b):Alubm_urls = []for p in range(0,b):url = get_alubm_page(a,b)[p]resp = requests.get(url, headers=headers)text = resp.content.decode('utf-8')html = etree.HTML(text)li_lists = html.xpath('//li[@class="album-list"]')for t in range(0, len(li_lists)):li_list = li_lists[t]p_list = li_list.xpath('//p[@class="title"]')[0]alubm_url = p_list.xpath('//div/a/@href')alubm_url = 'https://www.igeciku.com'+alubm_url[t]Alubm_urls.append(alubm_url)return Alubm_urls
#获取歌曲详情页面url的函数
def get_song_url(url):resp = requests.get(url,headers=headers)text = resp.content.decode('utf-8')html = etree.HTML(text)list = html.xpath('//li[@class="song-list"]')song_url_list = []for a in range(0, len(list)):li = list[a]song_url = 'https://www.igeciku.com' + li.xpath('//div[@class="list-inline album-song-title"]/a/@href')[a]song_url_list.append(song_url)return song_url_list
#获取歌词
def parse_details_urls(url):resp = requests.get(url, headers=headers)text = resp.content.decode('utf-8')html = etree.HTML(text)ul = html.xpath('//ul[@class="lyric clearfix"]')[0]lis = ul.xpath('./li')return lis
#主函数
def main():name_number = input("请输入艺术家编号:")page_number = input("请输入所属艺术家专辑页面页数:")page_number = int(page_number)name = input("请输入艺术家名称:") + '歌词' + '.txt'alubm_url = get_detail_alubm_page(name_number,page_number)with open(name,'w',encoding='utf-8') as f:for e in range (0,len(alubm_url)):song_url = get_song_url(alubm_url[e])for g in range (0,len(song_url)):lyc = parse_details_urls(song_url[g])for x in range(0, len(lyc)):lycs = lyc[x]lycs = lycs.xpath('string()')print(lycs)f.write(lycs)print("保存成功!")
if __name__ == '__main__':main()

P.S:

同时也欢迎大家给我关于此项目的B站投稿https://www.bilibili.com/video/BV1i5411g77t/
给予三连支持
谢谢大家!

Python爬虫爬取爱歌词网歌词(适合新手)相关推荐

  1. python爬虫爬取彼岸图网图片

    python爬虫爬取彼岸图网图片 话不多说,直接上代码! import requests from PIL import Image from io import BytesIO import re ...

  2. python爬虫图片实例-Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  3. Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  4. python 爬虫爬取煎蛋网妹子图,我1T的硬盘装满了!

    前言 大家好,这里是「brucepk」爬虫 系列教程.此系列教程以实例项目为材料进行分析,从项目中学习 python 爬虫,跟着我一起学习,每天进步一点点. 煎蛋网站 image 很多朋友都反应学 p ...

  5. (6)Python爬虫——爬取中新网新闻

    工欲善其事,必先利其器.我们要进行数据挖掘,就必须先获取数据,获取数据的方法有很多种,其中一种就是爬虫.下面我们利用Python2.7,写一个爬虫,专门爬取中新网http://www.chinanew ...

  6. Python爬虫爬取ok资源网电影播放地址

    #爬取ok资源网电影播放地址#www.okzy.co #入口一:http://okzy.co/index.php?m=vod-search&wd={关键字}&submit=search ...

  7. python爬虫爬取最好大学网排名分析地区大学数量分布并绘制柱状图和词云

    本人也是初学者,本博客用于python初学者参考使用. 分析网页 本次爬取的是最好大学网软科中国最好大学排名2018:http://www.zuihaodaxue.cn/zuihaodaxuepaim ...

  8. 使用python爬虫爬取最好大学网大学排名实例

    使用requests库和BeautifulSoup库实现对最好大学网大学排名信息爬取 链接:http://www.zuihaodaxue.com/Greater_China_Ranking2019_0 ...

  9. Python爬虫爬取某小说网的教程(含全代码)#大佬勿喷

    1.主要使用三个库 import parsel import requests import os 2.利用parsel解析网页 3.利用os库保存一本小说 4.链接上 小说专题: https://w ...

最新文章

  1. 必看!这八则故事教会你如何理财
  2. malware分析视频
  3. 推荐:微服务架构的深度解析!
  4. 一文揭秘定时任务调度框架quartz
  5. Excel 2007中创建或删除自定义数字格式
  6. 杭电1856More is better
  7. ajax工具怎么安装,AJAX工具
  8. 学习笔记1(第五周)
  9. spring—SpringMVC的请求和响应
  10. WebView控件中的javascript与Android本地功能交互
  11. linux文件系统基础知识
  12. 入门OJ 4187【周末舞会】
  13. Springboot创建webService接口时的cxfconfi文件报错出现DispatcherServletPath不能找到
  14. PHP100的php教程批量打包下载
  15. SPSS 25.0 软件安装教程
  16. 示波器学习笔记(2)——模拟示波器
  17. C++ 动态库、静态库、__declspec(dllexport)、符号隐藏、gcc visibility (“default“)
  18. 职称计算机word中文字处理,职称计算机Word2003中文字处理考试大纲
  19. 数据分析师简介、工作任务、技能栈
  20. hyperledger java_hyperledger fabric 1.4 使用java开发智能合约

热门文章

  1. 开通微信公众号:talk8谈吧
  2. 外卖平台的外包和佣金难题,有解吗?
  3. 如何查看SLIC 2.1
  4. 苹果芯片安全隔区 “Apple Secure Enclave” 分析笔记
  5. 没有调查,就没有发言权
  6. 江苏理工学院c语言实验报告,江苏理工学院 C语言程序设计综合训练.doc
  7. Smartbi移动BI,让数据决策尽在掌握
  8. 什么蓝牙耳机戴着舒服?佩戴舒适度最好的蓝牙耳机推荐
  9. 值传递还是引用传递(By Value or By Reference)
  10. 接口和抽象类的区别(面试题)