不得姐的视频爬取

本文介绍了一种使用Python的requests和正则表达式从爆笑虫子网站抓取视频的方法,包括获取网页源代码、解析视频URL和名称、以及下载视频到本地的过程。

 

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和名字都从列表中索引出来,得到字符串

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值