开发环境: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相关推荐

  1. python爬取酷狗音乐_Python爬取酷狗音乐

    在常见的几个音乐网站里,酷狗可以说是最好爬取的啦,什么弯都没有,也没加密啥的,所以最适合小白入门爬虫 本篇针对爬虫零基础的小白,所以每一步骤我都截图并详细解释了,其实我自己看着都啰嗦,归根到底就是两个 ...

  2. 酷狗音乐的爬取,基于python,从无到有完整教程-上:搭建环境及爬取原理讲解

    酷狗音乐的爬取,基于python,从无到有完整教程,使用微软新edge作为虚拟浏览器 搭建环境及爬取原理讲解 ⬇⬇⬇ 编码环境及工具准备: 编码工具:PyCharm 所需的库: import requ ...

  3. python爬取酷狗付费音乐_python爬蟲教程:爬取酷狗音樂

    在常見的幾個音樂網站里,酷狗可以說是最好爬取的啦,什么彎都沒有,也沒加密啥的,所以最適合小白入門爬蟲 本篇針對爬蟲零基礎的小白,所以每一步驟我都截圖並詳細解釋了,其實我自己看着都啰嗦,歸根到底就是兩個 ...

  4. 酷狗音乐的爬取,基于python,从无到有完整教程-下:功能代码讲解

    酷狗音乐的爬取,从无到有完整教程-下:功能代码讲解 是的我又回来了,这次是代码的讲解哦. 参数项生成 上一章我们提到,在包含了歌曲url,歌曲信息的请求中,有几个参数项的值是随机数就可以,但是,你仔细 ...

  5. python爬取网易云音乐_Python 从零开始爬虫(七)——实战:网易云音乐评论爬取(附加密算法)...

    前言 某宝评论区已经成功爬取了,jd的也是差不多的方法,说实话也没什么好玩的,我是看上它们分析简单,又没加密才拿来试手的.如果真的要看些有趣的评论的话,我会选择网易云音乐,里面汇聚了哲学家,小说家,s ...

  6. python爬取qq音乐评论_爬虫:QQ音乐评论

    QQ音乐评论 有些小伙伴反馈,对于爬虫的完整流程,还是不清楚,这边就按顺序,给大家梳理一下 反爬 首先查看一下,我们要爬取的网页,是否反爬(各种侵害人家服务器的事情,我们不能干) QQ音乐网址:htt ...

  7. python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...

    网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...

  8. 利用Python网络爬虫实现对网易云音乐歌词爬取

    今天小编给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本地 ...

  9. 基于python的音乐数据分析_Python对QQ音乐进行爬取并进行数据分析

    三方包引入 使用到了以下包: 爬虫 scrapy 网络测试 requests 数据分析 numpy和pandas 绘图 matplotlib和wordcloud pip install scrapy ...

  10. python爬虫----网易云音乐歌曲爬取并存入Excel

    因为数据要存入Excel中,所以首要目标是找个办法将数据能够存入excel中 经过在网上一番搜索后,发现用python里的xlwt模块可以比较容易的解决 一.准备工作 1.安装xlwt模块: 可以看h ...

最新文章

  1. JNI编译时错误 编码GBK的不可映射字符 解决方法
  2. js怎么获取一个元素与屏幕右边的距离_js获取元素到屏幕左上角的距离
  3. Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式
  4. Apache无法启动解决 the requested operation has failed
  5. Linux-Ubuntu Server 16.04安装JDK以及配置JDK环境变量
  6. 本机电脑与 Android 设备如何进行文件传输?
  7. via浏览器简洁主页html源码 支持搜索提示
  8. 工业机器人什么情况下会出现奇点_功夫机器人周全:复合作业机器人规模应用的奇点有多远?...
  9. 论各类BI工具的“大数据”特性!
  10. Android4.4点击无响应,webview某些超链接点击无响应的问题
  11. RocketMQ 概述
  12. 过采样欠采样的处理方法
  13. 英特尔核显自定义分辨率_英特尔核芯显卡设置如何操作【图文】
  14. 传奇服务器 地图文件,[技术贴]地图配置文件
  15. Spring 实体类依赖注入属性的三种方式
  16. sencha touch 相机,相册调用
  17. mysql 表情符号 用什么类型_使MySQL能够存储emoji表情字符的设置教程
  18. 自己动手制作Windows RE(Windows恢复环境)的启动U盘
  19. python唐诗分析综合_Python利器之胎教《唐诗三百首》文本分析
  20. 【云速建站】关于企业版的几点说明

热门文章

  1. win10家庭版升级到企业版的教程
  2. var模型可以用spss做吗_VAR模型一般几个变量
  3. Laravel 框架 - 模板继承
  4. .Net平台下安装DotNetBar
  5. 计算机wifi无法启动不了,电脑wifi启用不了怎么办
  6. 分形吧matlab,Matlab在分形模拟上的一些应用
  7. 希捷移动硬盘系统提示需要格式化才能用,怎么办
  8. 六层电梯的PLC控制程序
  9. 虚幻4 配置打包安卓
  10. Diamond简介和快速应用