# Python如何爬取熊貓辦公音頻素材數據
## 前言
熊貓辦公(www.tukuppt.com)是國內知名的辦公素材平臺,提供大量PPT模板、音效素材、圖片等資源。本文將詳細介紹如何使用Python爬取熊貓辦公的音頻素材數據,包括音頻名稱、分類、下載鏈接等關鍵信息。
## 準備工作
### 環境配置
需要安裝以下Python庫:
```python
pip install requests beautifulsoup4 fake-useragent
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
def get_page(url):
headers = {'User-Agent': UserAgent().random}
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
return BeautifulSoup(response.text, 'html.parser')
except Exception as e:
print(f"請求失敗: {e}")
return None
分析頁面結構后發現:
- 音頻列表位于<div class="sound-list">
標簽內
- 單個音頻信息包含在<div class="sound-item">
中
- 需要提?。? - 音頻名稱(class=“sound-title”)
- 分類標簽(class=“sound-tags”)
- 播放時長(class=“sound-duration”)
- 下載鏈接(需拼接域名)
def parse_audio_data(soup):
audio_list = []
base_url = "https://www.tukuppt.com"
for item in soup.select('.sound-item'):
audio = {
'name': item.select_one('.sound-title').get_text(strip=True),
'category': [tag.get_text() for tag in item.select('.sound-tags a')],
'duration': item.select_one('.sound-duration').get_text(),
'play_url': base_url + item.select_one('.play-btn')['data-url'],
'download_url': base_url + item.select_one('.download-btn')['href']
}
audio_list.append(audio)
return audio_list
def crawl_all_pages(start_page=1, end_page=5):
all_audios = []
base_url = "https://www.tukuppt.com/peiyue/list_{}.html"
for page in range(start_page, end_page+1):
print(f"正在爬取第{page}頁...")
soup = get_page(base_url.format(page))
if soup:
all_audios.extend(parse_audio_data(soup))
time.sleep(2) # 避免請求過于頻繁
return all_audios
headers = {
'User-Agent': UserAgent().random,
'Referer': 'https://www.tukuppt.com/',
'Accept-Language': 'zh-CN,zh;q=0.9'
}
proxies = {
'http': 'http://your_proxy_address:port',
'https': 'https://your_proxy_address:port'
}
response = requests.get(url, headers=headers, proxies=proxies)
import random
time.sleep(random.uniform(1, 3)) # 隨機等待1-3秒
import csv
def save_to_csv(audio_list, filename):
with open(filename, 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=audio_list[0].keys())
writer.writeheader()
writer.writerows(audio_list)
import pymysql
def save_to_mysql(audio_list):
conn = pymysql.connect(host='localhost', user='root',
password='123456', database='audio_db')
cursor = conn.cursor()
sql = """INSERT INTO audios (name, category, duration, play_url, download_url)
VALUES (%s, %s, %s, %s, %s)"""
for audio in audio_list:
cursor.execute(sql, (audio['name'], ','.join(audio['category']),
audio['duration'], audio['play_url'],
audio['download_url']))
conn.commit()
conn.close()
(整合上述代碼模塊,此處省略具體實現)
通過以上方法,您可以高效地獲取熊貓辦公的音頻素材數據,為后續的音頻處理或分析工作奠定基礎。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。