第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Python 爬蟲(chóng)獲取網(wǎng)易云音樂(lè)歌手信息

標(biāo)簽:
Python

今天就先带大家爬取网易云音乐下的歌手信息并把数据保存下来。

爬取结果

webp


环境

语言:Python
工具:Pycharm

导包

BeautifulSoup:用来解析源码,提取需要的元素。

selenium:因为歌手信息不在页面源代码里,用 selenium 自动化测试库直接获取调试页面的 Elements 元素信息。

csv:数据以 csv 形式保存下来。

程序结构

webp


程序由三部分组成:
get_singer():获取歌手信息。
get_data():数据结构转化,方便储存。
save2csv():保存数据。

代码解析

因页面源码中没有我们需要的数据,用 requests 无法获取,这些元素在 Elements 可以看到,故我们用 selenium 自动化测试库来获取页面。requests 库和 selenium 库的区别详见上次发的文章

这篇文章带你轻松入门 python 爬虫

我用的是 Chrome 浏览器,需要把 chromedriver 放在 Python 安装目录下。具体方法上面那篇文章也讲得很详细了。

browser = webdriver.Chrome()wait = WebDriverWait(browser, 5)  # 设置等待时间

提取歌手信息

子框架的问题需注意下,我们需要的元素信息不在主框架里,需要切换到子框架 g_iframe 里再操作。用 BeautifulSoup 解析元素并用选择器提取出我们需要的信息,最后以 zip 数据对应关系返回数据。

webp

格式转换

把上面返回的数据转换为方便储存的数据,就是把列表里的数据转换为由一个个的字典组成。为了方便查看,我把它打印出来了。

webp

代码如下

webp

数据储存

用 with open(…) as f 保存数据,这种其实是一种简化写法,简化前写法如下

try:    f = open('xxx.csv', 'r')    print(f.read())finally:    if f:        f.close()

但由于文件读写时都可能产生 IOError,为了保证无论是否出错都能正确地关闭文件,我们用 try … finally 来实现。

Python 简化了改写法,即用 with open(…) as … ,建议之后文件读写都用该写法。

webp

还有个参数需注意,open() 里面 r 或者 a 参数,这有什么含义呢?

主要的参数如下:
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

上面我用的是 a,因为我保存数据时会不断的循环追加数据,如果用的是 w,那么每次追加数据会覆盖上一次保存的数据。

最后执行 main 函数,我只想获取热门歌手的信息,所以我把 url 中 initial 写死为 -1,当然你也可以获取全部的歌手信息,网页中是按照英文字母 A -Z排列的,对应的 initial 的值分别是 65 - 90,你可以像下面 idlist 一样写成列表,也用一个循环就可以了。

webp

好了,今天的爬虫项目很简单,十几秒的时间已经保存了歌手姓名和歌手 id,歌手 id 数据用于下次爬虫对应歌手歌曲的歌词做准备的。自己赶紧动手试试吧。




作者:brucepk
链接:https://www.jianshu.com/p/0ceeea883847


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消