python

导航

怎么用python爬数据?

来源 :中华考试网 2020-09-17

  现在学习python的人应该都清楚,python有句口号叫“人生苦短,我学python”这句,这个的意思是认得一生太短暂,我们可以利用python缩短我们获取有价值的东西的时间。

  第一步:我们先打开我们的python专用编辑工具pycharm软件,然后点击“新建”,然后在我们的页面输入以下代码:

  import requestsimport re #正则import json #字典def get_mp3_by_songid(songid) api='http://musicapi.qianqian.com/v1/restserver/ting?method=baidu.ting.song.play&format=jsonp&callback=jQuery172049813043258268963_1525098370776&songid=%s&_=1525098375834'%songi response=requests.get(api data=response.tex data=re.findall(r'\((.*)\)',data)[0] data=json.loads(data print(data) #获取歌曲的信息(名字,mp3地址) mp3_name=data['songinfo']['title'] #该文件所在位置的递减阶级关系 mp3_url=data['bitrate']['file_link'] print(mp3_name) print(mp3_url) #发送http请求 response=requests.get(mp3_url) print(response.content) filename='%s.mp3'%mp3_name with open('E:\\music\\%s.mp3'%filename,'wb') as f: #爬取文件保存的位置 f.write(response.content)#根据查询的内容获取siddef get_sids_by_name(query): api='http://music.baidu.com/search' data={ 'key':query } response=requests.get(api,params=data html=response.tex sids=re.findall(r'sid":(\d+),',html) #获取歌曲id return sids #将id返回回去sids=get_sids_by_name('大张伟') #调用for sid in sids: #循环爬取 get_mp3_by_songid(sid)

  第二步:我们声明的“ef get_mp3_by_songid(songid):”是写一个函数,能够根据songid下载获取歌曲的mp3地址。

  第三步:声明获取歌曲的下载地址函数之后,我们需要将我们的歌曲路径放在我们的api里面,然后利用requests进行访问。

  第四步:然后我们需要获取歌曲的信息(名字,mp3地址),使用

  mp3_name=data['songinfo']['title'] #该文件所在位置的递减阶级关系mp3_url=data['bitrate']['file_link']print(mp3_name)print(mp3_url)

  第五步:我们继续下一步,发送我们的http请求,括号里面的第二个值的作用是将返回的数据以二进制信息放在content里面

  response=requests.get(mp3_url)print(response.content)

  第六步:我们的歌曲获取之后,我们需要给予它一个储存的路径,并将其永久化。其中open是指定储存的路径的作用。

  filename='%s.mp3'%mp3_namewith open('E:\\music\\%s.mp3'%filename,'wb') as f: f.write(response.content)

  第七步:根据查询的内容获取我们的sid

  def get_sids_by_name(query): api='http://music.baidu.com/search' data={ 'key':query } response=requests.get(api,params=data html=response.tex sids=re.findall(r'sid":(\d+),',html) return sids

  第八步:这里我们指定爬取的内容是大张伟的歌曲

  sids=get_sids_by_name('大张伟') #调用#print(sids)for sid in sids: #循环爬取 get_mp3_by_songid(sid)

  第九步:写完所有的代码之后,我们点击运行我们的程序,点击运行之后,我们进入我们的指定存储的爬取的内容保存的路径的文件夹内,就会发现我们的歌曲已经爬取到了。

分享到

相关资讯