华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python爬蟲(chóng) >> 文章內(nèi)容

怎么用python爬數(shù)據(jù)?

來(lái)源:中華考試網(wǎng)  [2020年9月17日]  【

  現(xiàn)在學(xué)習(xí)python的人應(yīng)該都清楚,python有句口號(hào)叫“人生苦短,我學(xué)python”這句,這個(gè)的意思是認(rèn)得一生太短暫,我們可以利用python縮短我們獲取有價(jià)值的東西的時(shí)間。

  第一步:我們先打開(kāi)我們的python專用編輯工具pycharm軟件,然后點(diǎn)擊“新建”,然后在我們的頁(yè)面輸入以下代碼:

  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'] #該文件所在位置的遞減階級(jí)關(guān)系 mp3_url=data['bitrate']['file_link'] print(mp3_name) print(mp3_url) #發(fā)送http請(qǐng)求 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)#根據(jù)查詢的內(nèi)容獲取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('大張偉') #調(diào)用for sid in sids: #循環(huán)爬取 get_mp3_by_songid(sid)

  第二步:我們聲明的“ef get_mp3_by_songid(songid):”是寫一個(gè)函數(shù),能夠根據(jù)songid下載獲取歌曲的mp3地址。

  第三步:聲明獲取歌曲的下載地址函數(shù)之后,我們需要將我們的歌曲路徑放在我們的api里面,然后利用requests進(jìn)行訪問(wèn)。

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

  mp3_name=data['songinfo']['title'] #該文件所在位置的遞減階級(jí)關(guān)系mp3_url=data['bitrate']['file_link']print(mp3_name)print(mp3_url)

  第五步:我們繼續(xù)下一步,發(fā)送我們的http請(qǐng)求,括號(hào)里面的第二個(gè)值的作用是將返回的數(shù)據(jù)以二進(jìn)制信息放在content里面

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

  第六步:我們的歌曲獲取之后,我們需要給予它一個(gè)儲(chǔ)存的路徑,并將其永久化。其中open是指定儲(chǔ)存的路徑的作用。

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

  第七步:根據(jù)查詢的內(nèi)容獲取我們的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

  第八步:這里我們指定爬取的內(nèi)容是大張偉的歌曲

  sids=get_sids_by_name('大張偉') #調(diào)用#print(sids)for sid in sids: #循環(huán)爬取 get_mp3_by_songid(sid)

  第九步:寫完所有的代碼之后,我們點(diǎn)擊運(yùn)行我們的程序,點(diǎn)擊運(yùn)行之后,我們進(jìn)入我們的指定存儲(chǔ)的爬取的內(nèi)容保存的路徑的文件夾內(nèi),就會(huì)發(fā)現(xiàn)我們的歌曲已經(jīng)爬取到了。

責(zé)編:hym
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
嫩江县| 临汾市| 两当县| 托克逊县| 张北县| 赤峰市| 鲜城| 瓮安县| 宣汉县| 威海市| 崇仁县| 九龙城区| 玛曲县| 鹿邑县| 德钦县| 和顺县| 桐柏县| 紫阳县| 富阳市| 凤冈县| 彭阳县| 青海省| 磐石市| 宁津县| 乐清市| 南通市| 天台县| 那曲县| 陆丰市| 颍上县| 通化市| 饶河县| 聂拉木县| 临泽县| 永川市| 商丘市| 舒兰市| 双峰县| 山西省| 容城县| 延寿县|