分析URL,发现网站视频页面的视频链接是全部嵌入在源代码中的。
所以首先获取源码,用正则表达式得到视频链接和视频名称,接着遍历不同页面的url,最后在本地生成文件存入。
源码如下:
#Design by minyuandong import requests import re import os #通过控制传入的i值来控制访问不同页面 def get_url(i): url = 'http://www.budejie.com/video/' + str(i) return url #获取总页面数量 #def get_page(): # for i in range(1,1000): # url = get_url(i) # response = requests.get(url=url) # if 'Error 403'in response.text: # print('共有%s个页面,正在整理...' %(i-1)) # break # else: # pass # return i #获取每一个页面的信息 def get_res(i): response = requests.get(url=get_url(i)) return response #从返回信息中获取mp4的地址list def mp4url(p): result = re.findall(r'data-mp4="(.*)"', get_res(p).text) return result #从返回信息中得到文件名并在本地保存 def filename(i,p): title = re.findall('data-text="(.*)">\n *<a href="j',get_res(p).text) filename = 'G:/网上爬下来的/百思不得姐/' + title[i] + '.mp4' return filename #创建文件并下载 def download(p): if os.path.exists('G:/网上爬下来的/百思不得姐'): for i in range(len(mp4url(p))): if os.path.exists(filename(i,p)): pass else: print('正在下载 %s' %filename(i,p)) con = requests.get(mp4url(p)[i]).content fn = open(filename(i,p),'wb') fn.write(con) fn.close() else: os.makedirs('G:/网上爬下来的/百思不得姐') def main(): print('Design by MinYuandong\n安全无毒,请放心食用') for i in range(1,51): download(i) print('共50页视频,下载完成!\n') input('按回车退出...') main()完成!