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_Projects\spiders\kugou500.text','a+')
try:
f.write(data_list['rank']+'\n')
f.write(data_list['signer'] + '\n')
f.write(data_list['song'] + '\n')
f.write(data_list['time'] + '\n')
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爬取酷狗音乐
在常见的几个音乐网站里,酷狗可以说是最好爬取的啦,什么弯都没有,也没加密啥的,所以最适合小白入门爬虫 本篇针对爬虫零基础的小白,所以每一步骤我都截图并详细解释了,其实我自己看着都啰嗦,归根到底就是两个 ...
- 酷狗音乐的爬取,基于python,从无到有完整教程-上:搭建环境及爬取原理讲解
酷狗音乐的爬取,基于python,从无到有完整教程,使用微软新edge作为虚拟浏览器 搭建环境及爬取原理讲解 ⬇⬇⬇ 编码环境及工具准备: 编码工具:PyCharm 所需的库: import requ ...
- python爬取酷狗付费音乐_python爬蟲教程:爬取酷狗音樂
在常見的幾個音樂網站里,酷狗可以說是最好爬取的啦,什么彎都沒有,也沒加密啥的,所以最適合小白入門爬蟲 本篇針對爬蟲零基礎的小白,所以每一步驟我都截圖並詳細解釋了,其實我自己看着都啰嗦,歸根到底就是兩個 ...
- 酷狗音乐的爬取,基于python,从无到有完整教程-下:功能代码讲解
酷狗音乐的爬取,从无到有完整教程-下:功能代码讲解 是的我又回来了,这次是代码的讲解哦. 参数项生成 上一章我们提到,在包含了歌曲url,歌曲信息的请求中,有几个参数项的值是随机数就可以,但是,你仔细 ...
- python爬取网易云音乐_Python 从零开始爬虫(七)——实战:网易云音乐评论爬取(附加密算法)...
前言 某宝评论区已经成功爬取了,jd的也是差不多的方法,说实话也没什么好玩的,我是看上它们分析简单,又没加密才拿来试手的.如果真的要看些有趣的评论的话,我会选择网易云音乐,里面汇聚了哲学家,小说家,s ...
- python爬取qq音乐评论_爬虫:QQ音乐评论
QQ音乐评论 有些小伙伴反馈,对于爬虫的完整流程,还是不清楚,这边就按顺序,给大家梳理一下 反爬 首先查看一下,我们要爬取的网页,是否反爬(各种侵害人家服务器的事情,我们不能干) QQ音乐网址:htt ...
- python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...
- 利用Python网络爬虫实现对网易云音乐歌词爬取
今天小编给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本地 ...
- 基于python的音乐数据分析_Python对QQ音乐进行爬取并进行数据分析
三方包引入 使用到了以下包: 爬虫 scrapy 网络测试 requests 数据分析 numpy和pandas 绘图 matplotlib和wordcloud pip install scrapy ...
- python爬虫----网易云音乐歌曲爬取并存入Excel
因为数据要存入Excel中,所以首要目标是找个办法将数据能够存入excel中 经过在网上一番搜索后,发现用python里的xlwt模块可以比较容易的解决 一.准备工作 1.安装xlwt模块: 可以看h ...
最新文章
- JNI编译时错误 编码GBK的不可映射字符 解决方法
- js怎么获取一个元素与屏幕右边的距离_js获取元素到屏幕左上角的距离
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式
- Apache无法启动解决 the requested operation has failed
- Linux-Ubuntu Server 16.04安装JDK以及配置JDK环境变量
- 本机电脑与 Android 设备如何进行文件传输?
- via浏览器简洁主页html源码 支持搜索提示
- 工业机器人什么情况下会出现奇点_功夫机器人周全:复合作业机器人规模应用的奇点有多远?...
- 论各类BI工具的“大数据”特性!
- Android4.4点击无响应,webview某些超链接点击无响应的问题
- RocketMQ 概述
- 过采样欠采样的处理方法
- 英特尔核显自定义分辨率_英特尔核芯显卡设置如何操作【图文】
- 传奇服务器 地图文件,[技术贴]地图配置文件
- Spring 实体类依赖注入属性的三种方式
- sencha touch 相机,相册调用
- mysql 表情符号 用什么类型_使MySQL能够存储emoji表情字符的设置教程
- 自己动手制作Windows RE(Windows恢复环境)的启动U盘
- python唐诗分析综合_Python利器之胎教《唐诗三百首》文本分析
- 【云速建站】关于企业版的几点说明