初用python爬取麦x学院python教学视频
生活随笔
收集整理的這篇文章主要介紹了
初用python爬取麦x学院python教学视频
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
想學python,苦于無資源,偶然得知有人說有全套麥某學院的教學視頻,趕緊留了個郵箱,幾天無果,只能自己動手了
來到麥某學院的官方網站,發現網站上的視頻都是免費的,是直接用html5視頻的,于是一顆爬蟲的種子悄然的發芽了
第一步:打開網站的源代碼,用截取各階段的相應章節地址
1. 從主頁上看,python教學視頻分成了四個階段,我們需要把每個階段的一系列視頻都捕獲到
2.分析該頁面的源代碼,發現所有視頻鏈接都在 class=“lead-img”的<a href="" .....里面
于是通過代碼:
<span style="font-size:18px;">pythonreg = re.compile(r'lead-img">.+?<a href="(.+?)" title="(.+?)"', re.DOTALL) pagedata = pythonreg .findall(html)</span> 截取得數據: <span style="font-size:18px;">/course/python/425-5465</span> 再與根目錄拼接就可到達下圖的相應教程中
第二步:根據第一步所截取的所有章節的地址獲取所有章節的課程地址
1. 隨手打開一個章節,發現最右邊有全部課程的相關鏈接
2.再看網頁源代碼
所有信息都在<div id = “playlist” 的 <li 的 href=""中
于是可通過代碼:
<span style="font-size:18px;">partreg = re.compile(r'id="playlist".+?<div>', re.DOTALL) # 獲取課程數據的一部分 datareg = re.compile(r'<li.+?href="(.+?)"', re.DOTALL) # 將課程鏈接剝離出來 coursedata = datareg.findall(partreg.findall(html))</span> 獲取每個視頻的播放地址 <span style="font-size:18px;">/course/python/425-5466/</span>
www.xxxx.com/csshtml3.m4v
至此已經得到了麥x學院的所有python教學視頻鏈接
我將這些鏈接地址全部存入mysql中,最后附上代碼
<pre name="code" class="python"># -*-coding:utf-8-*- # -------------------- # 爬取麥x學院python教程的大綱鏈接 # 2015.10.26 # --------------------- import re # 正則表達式 import urllib2 # 從地址獲取網頁源代碼 import saveDate2DB # 數據庫的操作# 打開網頁utl # 用reg規則返回自己要的數據 def getdata(url,reg):webpage = urllib2.urlopen(url, timeout=10)html = webpage.read()pagedata = reg.findall(html)return pagedatapythonurl = "http://www.maiziedu.com/course/python/" # 數據源網址 pythonreg = re.compile(r'lead-img">.+?<a href="(.+?)" title="(.+?)"', re.DOTALL) # 各階段的章節地址 pythons = getdata(pythonurl, pythonreg) # python大綱中的子地址urls = [] for course in pythons: # 從python大綱把所有課程鏈接找出來print '-----------------正在獲取', course[1], '課程鏈接---------------------'partreg = re.compile(r'id="playlist".+?<div>', re.DOTALL) # 獲取playlist部分datareg = re.compile(r'<li.+?href="(.+?)"', re.DOTALL) # 將playlist部分中的課程鏈接剝離出來mp4reg = re.compile(r'id="microohvideo".+?src="(.+?)"', re.DOTALL) # 將視頻匹配出來courseurl = "http://www.maiziedu.com" + course[0]coursedata = datareg.findall(getdata(courseurl, partreg)[0]) # 獲取所有課程視頻的鏈接mp4urls = [] # 將所有視頻地址存入list中for mp4html in coursedata:mp4url = getdata('http://www.maiziedu.com'+mp4html, mp4reg)print mp4url[0]mp4urls.append(mp4url[0])# saveDate2DB.savedata(course[1], mp4urls) # 將數據存入數據庫
程序運行結果:
另外,我還做了另一項有趣的行動
將下載鏈接轉換為qq旋風下載鏈接
用程序打開qq旋風并且將數據一個個下載
總結
以上是生活随笔為你收集整理的初用python爬取麦x学院python教学视频的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Hibernate 3
- 下一篇: python视频大全