送給Python小白學習爬蟲的小專案
原標題:運用Python爬蟲下載熊貓辦公上面的視訊模板和音效
1.怎樣實現
1.1 需要的模組
requests(urllib亦可)、bs4、os、time、sys
前兩個模組都需要額外安裝,後面模組是Python自帶的,我們按住win+R,在彈出來的視窗中輸入cmd,來到命令視窗,輸入下面語句即可安裝
requests: pip install requests
bs4:pip install bs4
如果在執行小編的程式碼的時候出現如下報錯
建議安裝lxml :pip install lxml,就不會出現錯誤了。
1.2 實現
我們來到這個網址:
https://www.tukuppt.com/videomuban/xuexi.html
這就是視訊模板的介面,我輸入的是有關 學習 型別的視訊模板,這個網址其實有兩部分組成的,第一就是模板型別,在這個網址中是 videomuban,另一部分是 xuexi 在這裡是這個模板下面的型別。
我們要做的就是下載這個網址下面的視訊,通過按電腦鍵盤F12來到開發者工具,可以發現這些視訊下載連結都在這個div.b-box標籤下面:
我們只需得到這個標籤下面的內容即可。
程式碼實現:
def get_video(name):
url='https://www.tukuppt.com/videomuban/%s.html'%name
responce=requests.get(url=url)
soup=BeautifulSoup(responce.text,'lxml')
list1=soup.select('div.b-box>dl') # 列表
list2=[] # 用於儲存視訊連結的列表
list3=[]
for i in range(len(list1)):
str1='http:'+list1[i].select('dd>a>video')[0]['src'] # 一個視訊的下載連結
list2.append(str1)
str2=list1[i].select('dt.title')[0].get_text() # 視訊的名稱
list3.append(str2)
print('->【{}】----{}'.format(i+1,str2))
str_id=input('------>請輸入你想下載的視訊序號(可輸入一連串序號,中將用","隔開):')
id=[int(i) for i in str_id.split(',')]
for i in id:
cb=requests.get(url=list2[i-1]).content # 用來得到視訊的二進位制檔案 c content b 二進位制
with open(file='./{}/{}.mp4'.format(name,list3[i-1]),mode='wb') as f:
f.write(cb)
Time_1()
print('--->一下載{}.mp4完畢!'.format(list3[i - 1]))
這是一個自定義的方法,傳入的引數就是自己輸入的名稱,在這裡就是上面 輸入的 xuexi(學習)
,這裡面有一個Time_1()方法,是用來顯示進度條的。
Time_1()方法:
def Time_1(): # 進度條函式
for i in range(1,101):
sys.stdout.write('\r')
sys.stdout.write('{0}%|{1}{2}'.format(i,int((i%101)/2)*'-','>'))
sys.stdout.flush()
time.sleep(0.05)
sys.stdout.write('\n')
下載音效嗎?跟上面的過程一樣,我就不詳細講了,
實現程式碼:
def get_yin(name1):
url='https://www.tukuppt.com/yinxiaomuban/%s.shtml'%name1
responce=requests.get(url=url).text
soup=BeautifulSoup(responce,'lxml')
list1=soup.select('div.b-box>dl')
list2=[]
list3=[]
for i in range(len(list1)):
url='http:'+list1[i].select('audio>source')[0]['src'] # 音訊下載連結
name=list1[i].select('dt>a')[0].get_text()
list2.append(url)
list3.append(name)
print('--->【{}】-{}'.format(i+1,name))
str_id = input('------>請輸入你想下載的視訊序號(可輸入一連串序號,中將用","隔開):')
id = [int(i) for i in str_id.split(',')]
for i in id:
cb = requests.get(url=list2[i - 1]).content # 用來得到視訊的二進位制檔案 c content b 二進位制
with open(file='./{}/{}.mp3'.format(name1,list3[i - 1]), mode='wb') as f:
f.write(cb)
Time_1()
print('--->一下載{}.mp3完畢!'.format(list3[i - 1]))
另外,在這個了我還定義了一個方法,主要用來建立檔案的
def get_name():
name=input('請輸入你想下載模板的名稱(拼音):')
try:
os.mkdir('./{}'.format(name))
except:
sys.exit() # 如果程式出錯,直接退出程式
return name
不過這裡輸入的要是拼音,切記!
2.最終程式碼
完整我已經上傳到github,l連結為:ppt.py
執行結果:
下載完成之後,會在同一個資料夾下面多出資料夾,所下載的內容就在這個資料夾下面,
如:
3.總結
這個專案比較簡單,希望那些python小白們能看懂,如果覺得可以,記得給我點一個小小的贊,我會更加努力地推出新的博文的。
相關文章
- 小白如何學習Python網路爬蟲?Python爬蟲
- 爬蟲小專案爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- python爬蟲實操專案_Python爬蟲開發與專案實戰 1.6 小結Python爬蟲
- 小白學 Python 爬蟲(25):爬取股票資訊Python爬蟲
- Python爬蟲入門學習實戰專案(一)Python爬蟲
- 小白學python-爬蟲常用庫Python爬蟲
- Python網路爬蟲實戰小專案Python爬蟲
- 爬蟲小專案(一)淘寶爬蟲
- Python學習筆記——爬蟲之Scrapy專案實戰Python筆記爬蟲
- Python 基礎學習 網路小爬蟲Python爬蟲
- Python爬蟲小專案:爬一個圖書網站Python爬蟲網站
- Python爬蟲專案整理Python爬蟲
- python爬蟲初探--第一個python爬蟲專案Python爬蟲
- python爬蟲例項專案大全-GitHub 上有哪些優秀的 Python 爬蟲專案?Python爬蟲Github
- Python3 大型網路爬蟲實戰 — 給 scrapy 爬蟲專案設定為防反爬Python爬蟲
- python爬蟲學習1Python爬蟲
- 小豬的Python學習之旅 —— 2.爬蟲初涉Python爬蟲
- Python網路爬蟲實戰專案大全 32個Python爬蟲專案demoPython爬蟲
- python爬蟲學習筆記 4.2 (Scrapy入門案例(建立專案))Python爬蟲筆記
- 專案--python網路爬蟲Python爬蟲
- 網路爬蟲(python專案)爬蟲Python
- 33個Python爬蟲專案Python爬蟲
- Python簡單爬蟲專案Python爬蟲
- Python爬蟲入門專案Python爬蟲
- python爬蟲是什麼?學習python爬蟲難嗎Python爬蟲
- Python入門_給小白的學習指南Python
- python爬蟲-33個Python爬蟲專案實戰(推薦)Python爬蟲
- Python爬蟲學習(5): 簡單的爬取Python爬蟲
- Python爬蟲學習系列教程Python爬蟲
- Python爬蟲教程-31-建立 Scrapy 爬蟲框架專案Python爬蟲框架
- (python)爬蟲----八個專案帶你進入爬蟲的世界Python爬蟲
- python爬蟲小專案--飛常準航班資訊爬取variflight(上)Python爬蟲
- 爬蟲專案爬蟲
- github上的python爬蟲專案_GitHub - ahaharry/PythonCrawler: 用python編寫的爬蟲專案集合GithubPython爬蟲
- 一個Python小白5個小時爬蟲經歷 【續】Python爬蟲
- 不踩坑的Python爬蟲:Python爬蟲開發與專案實戰,從爬蟲入門 PythonPython爬蟲
- 什麼是爬蟲?學習Python爬蟲難不難?爬蟲Python