python爬蟲學(xué)習(xí)教程之自動下載網(wǎng)頁音頻文件


一、使用到的庫
1、requests
用來發(fā)送http請求。
2、BeautifulSoup
一個靈活又方便的網(wǎng)頁解析庫,處理高效,支持多種解析器。
利用它就不用編寫正則表達(dá)式也能方便的實(shí)現(xiàn)網(wǎng)頁信息的抓取。
3、安裝和引入:
pip install requestspip install BeautifulSoup
import requestsfrom bs4 import BeautifulSoup as bf
二、目標(biāo)網(wǎng)站
一個需要手動點(diǎn)擊下載mp3文件的網(wǎng)站,因?yàn)樾枰螺d幾百個所以很難手動操作。
三:獲取并解析網(wǎng)頁源代碼
1、使用requests獲取目標(biāo)網(wǎng)站的源代碼
r = requests.get('http://www.goodkejian.com/ertonggushi.htm')所有下載鏈接被存放在<a></a>標(biāo)簽內(nèi),并且長度固定。該鏈接將其中的amp;去除后方可直接下載。
2、使用BeautifulSoup將網(wǎng)頁內(nèi)容解析并將其中的<a></a>標(biāo)簽提取出來
soup = bf(r.text, 'html.parser')res = soup.find_all('a')
四:下載
經(jīng)過上述步驟res就變成了包含所有目標(biāo)標(biāo)簽的數(shù)組,要想下載網(wǎng)頁上的所有mp3文件,只要循環(huán)把res中的元組轉(zhuǎn)換為字符串,并經(jīng)過篩選、裁剪等處理后變成鏈接就可以使用request訪問了,并且返回值就是mp3文件的二進(jìn)制表示,將其以二進(jìn)制形式寫進(jìn)文件即可。
全部代碼如下:
import requestsfrom bs4 import BeautifulSoup as bfr = requests.get('http://www.goodkejian.com/ertonggushi.htm')soup = bf(r.text, 'html.parser')res = soup.find_all('a')recorder = 1# 長度為126的是要找的圖標(biāo)for i in res:dst = str(i)if dst.__len__() == 126:url1 = dst[9:53]url2 = dst[57:62]url = url1 + url2print(url)xjh_request = requests.get(url)with open("./res/" + str(recorder) + ".rar", 'wb') as file:file.write(xjh_request.content)file.close()recorder += 1print("ok")
以上就是使用python爬蟲自動下載網(wǎng)頁音頻文件的思路和全部代碼,大家可以套入代碼嘗試下載進(jìn)行實(shí)戰(zhàn)練習(xí)哦~
*聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請聯(lián)系我們刪除或授權(quán)

評論
圖片
表情
