import requests
import re
start_url = 'http://www.budejie.com/'#获得入口地址
response = requests.get(start_url)#用get方法进行访问
print(response.text)#将访问到的网页进行文本处理
def get_reponse(url):#封装成 只可访问的函数,并保存文本
response = requests.get(url).content
return response
def get_content(html):#封装成 匹配获取目标数据的函数,将得到的匹配项进行解析
reg = re.compile(r'(<div class = "j-r-list-c">.*?</div>.*?</div>)',re.S)
return re.findall(reg,html)
def get_mp4_url(response):#从文本中解析得到的视频url
reg = r'data-mp4="(.*?)"'
return re.findall(reg,response)
def get_mp4_name(response):#得到视频的名字
reg = re.compile('<a href="/detail.{8}.html">(.*?)</a>')
return re.findall(reg,response)
def download_mp4(mp4_url,path):#下载视频
path = ''.join(path.split())#将得到的名字分割,再拼接
path = ': \\ \\{}.mp4'.format(path.decode('utf-8').encode('gbk'))#保存路径和保存格式
if not os.path.exists(path):#进行判断,如果没有此文件夹就重新创建文件夹
urllib.urlretrieve(mp4_url,path)#用urlretrieve方法来加载视频的url,再保存
print('ok!!!')
else:
print('no!!!')
if __name__ == '__main__':
start_url = 'http://www.budejie.com/'
content = get_content(get_reponse(start_url))#两次函数调用,先访问主页,再解析主页源代码
for i in content:#将得到的视频url遍历出来,再进行处理
print(get_mp4_url(i))#得到了视频的url
mp4_url = get_mp4_url(i)
if mp4_url:
mp4_name = get_mp4_name(i)#得到视频的名字
print(mp4_url[0],mp4_name[0])
download_mp4(mp4_url[0],mp4_name[0])
#下载视频,将得到的url和名字都从列表中索引出来,得到字符串
本文介绍了一种使用Python的requests和正则表达式从爆笑虫子网站抓取视频的方法,包括获取网页源代码、解析视频URL和名称、以及下载视频到本地的过程。
1万+

被折叠的 条评论
为什么被折叠?



