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



