python爬取酷狗音乐top500及歌词_爬取酷狗音乐Top500(示例代码)
开发环境:windows环境+python3+requests库(请求)+BeautifulSoup库(解析)
目标:爬取酷狗音乐Top500并保存到txt中
整个案例源代码:
#导入程序需要的库,requests库用于请求获取网页,BeautifulSoup库用于解析网页数据,time库、random库用于随机延时
import requests
from bs4 import BeautifulSoup
import time
import random
from multiprocessing import Pool
#请求头,伪装浏览器,加强爬虫的稳定性
headers = {
‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36‘
}
#创建一个列表用于接收数据
data_lists = []
#定义爬取数据的函数
def get_info(url):
global time
wb_data = requests.get(url,headers = headers)
soup = BeautifulSoup(wb_data.text,‘lxml‘)
ranks = soup.select(‘span.pc_temp_num ‘)
titles = soup.select(‘div.pc_temp_songlist > ul > li > a‘)
times = soup.select(‘div.pc_temp_songlist > ul > li > span.pc_temp_tips_r > span‘)
for rank,title,time in zip(ranks,titles,times):
data = {
‘rank‘:rank.get_text().strip(),
‘signer‘:title.get_text().strip().split(‘-‘)[0],
‘song‘:title.get_text().strip().split(‘-‘)[-1],
‘time‘:time.get_text().strip()
}
print(data)
data_lists.append(data)
if __name__ == ‘__main__‘:
urls = [‘http://www.kugou.com/yy/rank/home/{}-8888.html‘.format(str(i)) for i in range(1,3)]
start_time1 = time.time()
for url in urls:
get_info(url)
time.sleep(random.randint(1, 5))
end_time1 = time.time()
print("单个进程爬取酷狗音乐Top500用的时间:",end_time1 - start_time1)
#将数据写入txt文档
for data_list in data_lists:
f = open(‘D:Pycharm_Projectsspiderskugou500.text‘,‘a+‘)
try:
f.write(data_list[‘rank‘]+‘
‘)
f.write(data_list[‘signer‘] + ‘
‘)
f.write(data_list[‘song‘] + ‘
‘)
f.write(data_list[‘time‘] + ‘
‘)
f.close()
except UnicodeEncodeError:
pass
1、requests库的用法
import requests
res = requests,get(‘url‘)
print(res) #若为则正常,若状态吗为404 或者400则表示请求失败
print(res.text)#打印请求的网页源码信息
此外,requests库还有get()方法,和post()等方法。对于异常处理主要有ConnectionError、Response.raise_for_status()、Timeout、TooManyRedirects等,详情参看requets库的官方文档:http://docs.python-requests.org/zh_CN/latest/
2.BeautifulSoup库的简单用法
BeautifulSoup库可以轻松的解析requests库请求得到的网页,并把网页源代码解析为Soup文档。BeautifulSoup解析得到的Soup文档与requests库请求得到的网页源码相比,Soup文档是按标准缩进格式输出。
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,‘lxml‘)
#查找想要的元素,一般主要用find_all()方法和selector()方法·
soup.find_all(tag,attributes)
titles = soup.select(‘div.pc_temp_songlist > ul > li > a‘)
其他更多用法,参看BeautifulSoup文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
3、python中文件对象的读取操作
一般主要通过f.write()和f.read()方法(这里假设文件的名为f)。
写入内容:
f = open(‘xxxx路径/xx.txt‘,‘w+’)
f.write(‘hello world‘)
读出内容:
f = open(‘xxxx路径/xx.txt‘,‘w+’)
content = f.read()
print(content)
最后,通常文件读写操作完成之后,需要关闭文件,采用f.close()方法。这样可以保证Python进行缓冲的清理(处于效率的考虑而把数据临时存储在内存中)和文件的安全性。
python爬取酷狗音乐top500及歌词_爬取酷狗音乐Top500(示例代码)相关推荐
- python爬虫网易云音乐评论再分析_爬取网易云音乐的评论后,竟有这种发现!
原标题:爬取网易云音乐的评论后,竟有这种发现! 作者 | 志颖 责编 | 胡巍巍 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条. 现在 ...
- python爬取微博评论并做词频分析_爬取李子柒微博评论并分析
爬取李子柒微博评论并分析 微博主要分为网页端.手机端和移动端.微博网页版反爬太厉害,因此选择爬取手机端. 1 需求 爬取李子柒微博中视频的评论信息,并做词频分析. 2 方法 2.1 运行环境 运行平台 ...
- 用python将word文档导入数据库_python读取word文档,插入mysql数据库的示例代码
表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding: ...
- python绘制多条不同x轴曲线_Python matplotlib 绘制双Y轴曲线图的示例代码
Matplotlib简介 Matplotlib是非常强大的python画图工具 Matplotlib可以画图线图.散点图.等高线图.条形图.柱形图.3D图形.图形动画等. Matplotlib安装 p ...
- python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码
百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...
- python编写界面遍历_python和pywin32实现窗口查找、遍历和点击的示例代码
Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量.接口.线程以及COM机制等等. 1.通过类名和标题查找窗口句柄,并获得窗口位置和 ...
- python查询数据库后更新_python 实现数据库中数据添加、查询与更新的示例代码...
一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...
- python 做界面时如何使图片保持透明背景_Python matplotlib生成图片背景透明的示例代码...
使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,找到了大概的设置方法,特此记录. # coding=utf-8 # matplotlib背景透明示例图 # python 3 ...
- python制作微信二维码_Python提取支付宝和微信支付二维码的示例代码
支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...
- python爬取酷狗音乐的mv地址_爬取酷狗音乐.py
import requests from selenium import webdriver from pyquery import PyQuery as pq #获取歌名 def Access_to ...
最新文章
- Sierpinski三角形
- 转载,大佬关于虚拟内存与物理内存关系讲解。
- Struts2--标签tag
- Android 中文API (92) —— MenuInflater
- 马斯克Neuralink联合创始人宣布离职,此前尚未推出上市产品
- Nginx负载均衡监控节点状态
- 【数据结构与算法】之深入解析“格雷编码”的求解思路与算法示例
- 为什么所有的React应用开头都有一行meta charset=utf-8语句?
- Android之用glide加载gif图片静态展示
- 将angular转化为手机app_手机照片快速转化为PBR材质流程
- idea新建maven项目没有src目录的操作方法
- web前端优化--图片优化
- Eternal机器人指令大全
- php_2017手册,PHP中文手册下载-PHP中文手册官方2017(带用户注释)chm版-东坡下载
- android网上书城管理源代码,网上书店管理系统(附程序源代码).doc
- FastDFS存储目录迁移方案
- 胧月初音未来计算机,胧月(流星P所作歌曲《胧月》)_百度百科
- 笔记本电脑进水怎么办?
- GB2312和UTF-8
- va start linux头文件,va_start/va_end函数-linux
热门文章
- 英语AquilariaCrassna奇楠沉香
- 油管YouTube直播点赞订阅提示PR字幕Mogrt动态图形模板
- Canonical Address
- DNA甲基化可实现转座因子驱动的基因组扩增
- VMware虚拟机Linux----cents7系统安装操作
- cba篮球暂停次数和时间_篮球比赛CBA中每节多长时间?每次暂停都分为多长
- 傻X了:mac上编译的程序放到linux上运行
- C语言/c++:实验报错[Error] ld returned 1 exit status的解决方案
- 第二部分 自动内存管理
- katacontainers启动分析