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


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

