(爬)熊貓辦公-音效素材
(爬)熊貓辦公-音效素材
難易度—<**>
網址:https://www.tukuppt.com/yinxiaomuban/zhuanchang/__zonghe_0_0_0_0_0_0_%7B%7D.html
可以看到網址進去的頁面如下
往下拉會有很多一格格的音效,這個就是我要爬取的素材
在b-box裡有很多一樣的dl
少了http:所以等下記得寫碼時要加上
這次來練習class的用法,要不然久沒用都有點生鏽
大致上整體的配發如下:
class panda_sounds(object):
def __init__(self):
pass
def exPath(self):
'''下載'''
def getHtml(self):
'''解析網址'''
在exPath()的函式裡,主要是檢查有無下載檔案存檔的絕對路徑,沒有則建立資料夾
有則繼續下載來源檔案並存檔成mp3
def exPath(self, destpath, i):
if not os.path.exists(destpath):
os.mkdir(destpath)
filename=os.path.basename(i)
with open(os.path.join(destpath, filename), 'w') as df:
df.write(i)
print("%s下載成功..."%filename)
time.sleep(1)
df.close()
在getHtml()裡,主要是利用requests請求抓取和beautifulsoup解析html裡目標的mp3網址
def getHtml(self, destpath):
html=requests.get(self.url)
soup=BeautifulSoup(html.text, 'lxml')
box=soup.find('div', 'b-box')
dl=box.find_all('dl')
for a in dl:
audio=a.find('audio')
source=audio.find('source')['src']
allUrl="http:"+source
self.exPath(destpath, allUrl)
return allUrl
整和起來如下:
import requests
from bs4 import BeautifulSoup
import os, time
class panda_sounds(object):
def __init__(self):
self.url='https://www.tukuppt.com/yinxiaomuban/zhuanchang/__zonghe_0_0_0_0_0_0_%7B%7D.html'
def exPath(self, destpath, i):
if not os.path.exists(destpath):
os.mkdir(destpath)
filename=os.path.basename(i)
with open(os.path.join(destpath, filename), 'w') as df:
df.write(i)
print("%s下載成功..."%filename)
time.sleep(1)
df.close()
def getHtml(self, destpath):
html=requests.get(self.url)
soup=BeautifulSoup(html.text, 'lxml')
box=soup.find('div', 'b-box')
dl=box.find_all('dl')
for a in dl:
audio=a.find('audio')
source=audio.find('source')['src']
allUrl="http:"+source
self.exPath(destpath, allUrl)
return allUrl
if __name__=='__main__':
destpath=r'D:\暫存\panda_office'
pd=panda_sounds()
pd.getHtml(destpath)
結果顯示:
留言
張貼留言