趣玩爬虫 | 教你爬取百思不得姐网站视频

好久不见,我又来了。。。

上次给大家分享了如何爬取某平台付费音乐的方法,我在后台收到了一些好友的留言,说能不能分享一下如何爬取视频网站的教程。的确,我到现在还没有做过这方面的研究,那今天我们就分享一下,如何爬取百思不得姐这个网站的视频。为什么选择这个网站呢,因为这个相对来说比较简单,它可以为我们爬取抖音视频做铺垫,那么你就知道我们下次的文章就是介绍如何爬取抖音视频了。好了话不多说,我们开始研究。

1

首先我们打开百思不得姐网站的视频部分,链接在这里:http://www.budejie.com/video/,打开一下就是这个样子:

老规矩,首先开启开发者模式,审查元素了解一下,然后立马就能发现视频链接:

然后将图中的href属性的值与主域名进行绑定,播放地址就出来了?这爬虫怎么这么简单,比爬文字、图片简单多了!其实并不是,没有这么简单。因为你这样输入地址就会发现是错误的链接:

是不是感觉被套路了?哈哈哈哈,其实这个是最基本的套路了,我见过比这个更套路人的,里面竟然有一个性别参数,针对男女显示不同的页面。。。。好了,我们继续。我们尝试将点击播放页面,发现下面图中一段类似于图片的链接,就是这个播放框对应的页面元素位置:

但是当我们点击图中播放框中间的播放倒三角按钮时,发现页面链接没有发生变化,依旧是图片地址,但是这里的视频却是开始播放了。这个是不是有点疑惑?

如果你不相信,那你可以点击图中的图片链接:http://mpic.spriteapp.cn/crop/566x360/picture/2019/0314/29295118_103.jpg,

一回车图片就出来了:

这就是该视频的封面图片,那么现在问题来了?(不是问你挖掘技术哪家强)真实的视频播放地址到底在哪里呢?

这个网站有一个非常好的地方就是提供了视频下载接口,点击下载按钮,就会弹出下载窗口:

看到没有,视频都是mp4结尾的,那好我们在源码里面搜一下,看有没有包含mp4的代码:

出现了,我们点击一下这个链接,你会发现这个就是我们触发弹窗的链接。如此看来,我们就找到了视频地址。还有就是视频的页数,通过多次观察这里的页数一共有50页,这个大家不用疑惑,因为我已经判断过了。接下来就是书写代码了,这里我提供一下完整的代码:

import requests
import re
import urllib.request


headers ={
    'User-Agent': 'Chrome/50.0.2661.102'
    }

# proxies = {
#         'http': 'http://116.209.54.203:9999',
#     }

start_url ="http://www.budejie.com/video/"
url_info = []
for i in range(1,51):
    url = start_url + str(i)  # 拼接url
    def parse_html(url):
        data = requests.get(url, headers=headers).text
        url_content = re.compile('(<div class="j-r-list-c">.*?</div>.*?</div>)', re.S)   # 正则编译
        url_contents = re.findall(url_content, data)
        for x in url_contents:
            url_link = r'data-mp4="(.*?)"'  # 视频地址
            url_items = re.findall(url_link,x)
            if url_items:  # 判断视频是否存在
                name_rev = re.compile(r'<a href="/detail-.{8}?.html">(.*?)</a>', re.S)   # 正则编译
                name_items = re.findall(name_rev, x)
                for k, v in zip(name_items, url_items):
                    url_info.append([k, v])
                    print(k,v)
        for i in url_info:  # i[1]=url i[0]=name
            urllib.request.urlretrieve(i[1], 'I:\\Python3.6\\baisibudejie\\video\\%s.mp4' % (i[0]))
    parse_html(url)

好了,今天的分享就到这里了,下期我们开始爬取抖音视频啦。

原文发布于微信公众号 - 啃饼思录(kbthinking)

原文发表时间:2019-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券