开发环境: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(示例代码)相关推荐

  1. python爬虫网易云音乐评论再分析_爬取网易云音乐的评论后,竟有这种发现!

    原标题:爬取网易云音乐的评论后,竟有这种发现! 作者 | 志颖 责编 | 胡巍巍 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条. 现在 ...

  2. python爬取微博评论并做词频分析_爬取李子柒微博评论并分析

    爬取李子柒微博评论并分析 微博主要分为网页端.手机端和移动端.微博网页版反爬太厉害,因此选择爬取手机端. 1 需求 爬取李子柒微博中视频的评论信息,并做词频分析. 2 方法 2.1 运行环境 运行平台 ...

  3. 用python将word文档导入数据库_python读取word文档,插入mysql数据库的示例代码

    表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding: ...

  4. python绘制多条不同x轴曲线_Python matplotlib 绘制双Y轴曲线图的示例代码

    Matplotlib简介 Matplotlib是非常强大的python画图工具 Matplotlib可以画图线图.散点图.等高线图.条形图.柱形图.3D图形.图形动画等. Matplotlib安装 p ...

  5. python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  6. python编写界面遍历_python和pywin32实现窗口查找、遍历和点击的示例代码

    Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量.接口.线程以及COM机制等等. 1.通过类名和标题查找窗口句柄,并获得窗口位置和 ...

  7. python查询数据库后更新_python 实现数据库中数据添加、查询与更新的示例代码...

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...

  8. python 做界面时如何使图片保持透明背景_Python matplotlib生成图片背景透明的示例代码...

    使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,找到了大概的设置方法,特此记录. # coding=utf-8 # matplotlib背景透明示例图 # python 3 ...

  9. python制作微信二维码_Python提取支付宝和微信支付二维码的示例代码

    支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...

  10. python爬取酷狗音乐的mv地址_爬取酷狗音乐.py

    import requests from selenium import webdriver from pyquery import PyQuery as pq #获取歌名 def Access_to ...

最新文章

  1. Sierpinski三角形
  2. 转载,大佬关于虚拟内存与物理内存关系讲解。
  3. Struts2--标签tag
  4. Android 中文API (92) —— MenuInflater
  5. 马斯克Neuralink联合创始人宣布离职,此前尚未推出上市产品
  6. Nginx负载均衡监控节点状态
  7. 【数据结构与算法】之深入解析“格雷编码”的求解思路与算法示例
  8. 为什么所有的React应用开头都有一行meta charset=utf-8语句?
  9. Android之用glide加载gif图片静态展示
  10. 将angular转化为手机app_手机照片快速转化为PBR材质流程
  11. idea新建maven项目没有src目录的操作方法
  12. web前端优化--图片优化
  13. Eternal机器人指令大全
  14. php_2017手册,PHP中文手册下载-PHP中文手册官方2017(带用户注释)chm版-东坡下载
  15. android网上书城管理源代码,网上书店管理系统(附程序源代码).doc
  16. FastDFS存储目录迁移方案
  17. 胧月初音未来计算机,胧月(流星P所作歌曲《胧月》)_百度百科
  18. 笔记本电脑进水怎么办?
  19. GB2312和UTF-8
  20. va start linux头文件,va_start/va_end函数-linux

热门文章

  1. 英语AquilariaCrassna奇楠沉香
  2. 油管YouTube直播点赞订阅提示PR字幕Mogrt动态图形模板
  3. Canonical Address
  4. DNA甲基化可实现转座因子驱动的基因组扩增
  5. VMware虚拟机Linux----cents7系统安装操作
  6. cba篮球暂停次数和时间_篮球比赛CBA中每节多长时间?每次暂停都分为多长
  7. 傻X了:mac上编译的程序放到linux上运行
  8. C语言/c++:实验报错[Error] ld returned 1 exit status的解决方案
  9. 第二部分 自动内存管理
  10. katacontainers启动分析