Python爬取酷狗飙升榜前十首(100)首,写入CSV文件

摘要:
1importRequests2froms4importBeautifulSoup3importTime45#请求标头6headers={7'用户代理':如Gecko)Chrome/56.02924.87Safari/537.36'8}910defrequests_list(url):11wb_data=requests.get(url,
酷狗飙升榜,写入CSV文件

爬取酷狗音乐飙升榜的前十首歌名、歌手、时间,是一个很好的爬取网页内容的例子,对爬虫不熟悉的读者可以根据这个例子熟悉爬虫是如何爬取网页内容的。

需要用到的库:requests库、BeautifulSoup库、time库;

请求头:'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'

网址:https://www.kugou.com/yy/rank/home/1-6666.html?from=rank

运行完整代码:

 1 import requests
 2 from bs4 import BeautifulSoup
 3 import time
 4 
 5 # 请求头
 6 headers = {
 7     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
 8 }
 9 
10 def requests_list(url):
11     wb_data = requests.get(url,headers=headers)
12     soup = BeautifulSoup(wb_data.text,'lxml')
13     nums = soup.select('span.pc_temp_num')#排名
14     titles = soup.select('div.pc_temp_songlist > ul > li > a')#标题
15     times = soup.select('span.pc_temp_tips_r > span')#歌曲时间
16     # 定义一个n方便判断是否是只取飙升榜的前十首歌
17     n=0
18     # 将每次循环爬取出的数据放入空字典中
19     data=[]
20     data.append(['num','singer','song','time'])
21     for num,title,time in zip(nums,titles,times):
22         data.append([
23             num.get_text().strip(),
24             title.get_text().split('-')[0],#用"-"分割歌手和歌名
25             title.get_text().split('-')[1],
26             time.get_text().strip()
27         ])
28         n=n+1
29         if n>=10:
30             break
31     print(data)
32     return data
33 
34 def save_to_csv(data):
35     # 打开kugou.csv文件,将爬取的数据写入进去
36     fr=open("kugou.csv","w")
37     for s in data:
38         fr.write(",".join(s)+"
")
39     
40 if __name__ == '__main__':
41     urls = "https://www.kugou.com/yy/rank/home/1-6666.html?from=rank"
42     save_to_csv(requests_list(urls))

注意:若在爬取过程中,有存在问题,可以在博客下面评论,小编会进行解答哦

免责声明:文章转载自《Python爬取酷狗飙升榜前十首(100)首,写入CSV文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇javascript md5 二次加密 和 java md5 二次加密结果不同WPF 多语言解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS企业证书开发的APP证书过期时间监控

大家都知道iOS的企业证书开发的APP,证书都是一年有效期,满一年得新建证书重新打包,否则无法继续使用。 我们一个企业账号下有几十个APP,一个个去看也很麻烦~~搞个监控呗!!! 写个脚本放Jenkins上定时跑就行,跑完发布邮件: 1.邮件包含信息:APP名称,APP相关的bundle id、证书名称、签名时间、团队id,过期时间,以及剩余有效的月数。...

DFA算法 处理屏蔽词库

春节之后,回来就连着上班,没休息过来那.简单整下吧。 这里是lua实现的。直接上代码。 --敏感词库转化关键词 dfa算法处理屏蔽词库 require "sensitive_words" ---词库 local SensitiveWordsUtil = class('SensitiveWordsUtil') function Sensit...

sudo配置临时取得root权限

sudo配置临时取得root权限系统中的普通用户有时需要root权限执行某种操作,要是使用su - root的话必须要知道root的密码,这是不安全的,所以有了sudo,root可以对/etc/sudoers做一定的配置,让普通用户在不切换到root的情况下,执行一些只有root才能执行的操作。这个文件只能root去修改,建议使用visudo这个命令修改,...

使用jest进行单元测试

以前,写完一段代码我也是直接调用或者实例化一下,发现过了就把测试相关部分删了。今年的不幸与坎坷使我有很长一段时间去思考人生,不想将就了,鲁棒健壮的程序,开发和测试应该是分得很开的,于是我选择jest去做单元测试这件事。 为什么要做单元测试 在开始之前,我们先思考这样一个问题,我们为什么要做单元测试? 不扯犊子直接说吧,第一点,用数据、用茫茫多的测试用例去告...

Xcode开发 字符串用法

Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。 1.创建经典的NSString字符串 NSString...

【转】WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等。 本文主要内容: DataGrid自定义样式; ListView自定义样式; 二.DataGrid自定义样式 DataGrid是常用的数据列表显示控件,先看看实现的效果(动态图,有点大): DataGrid控件样式结构包括以下几个部分:...