python爬取无水印抖音小姐姐视频(2018最新,含Pyqt客户端)

       各位小伙伴,之前一段时间迷上了抖音小姐姐视频,但是下载的视频都有水印,于是自己用Python 写了个爬取小姐姐视频的工具,大家可以直接拷贝到自己编译器上运行。此外,我还利用pyqt5写了个操作界面,这样可以方便不懂代码的人使用。后面代码我都会一一贴上来。备注:这个只是个人兴趣,参考代码的小伙伴切莫用于非法商业途径;

环境:python3.0    pychram/eric  

url 获取方式:页面右边的【分享】按钮-》 复制链接。  提取出里面的Url就好了。

杂七杂八:Python开发者可以加我一下,多交流交流,我的微信:stefan1240。 

另外这段时间闲着没事,自己弄了个淘客网站。领取天猫淘宝优惠券的,和一般的找券网不同,采集下来的天猫淘宝产品都是经过我的大数据模型筛选的,希望大家帮忙测试下,网页右上角有安卓app下载。

网站链接:http://www.0k8gj.cn/

直接上正文代码: 

# -*- coding:utf-8 -*-
from splinter.driver.webdriver.chrome import Options, Chrome
from splinter.browser import Browser
from contextlib import closing
import requests, json, time, re, os, sys

class douyin():
    def __init__(self):
        pass
    """
    视频下载
    Parameters:
        video_url: 带水印的视频地址
        video_name: 视频名
    Returns:
        无
    """
    def video_downloader(self,  video_url, video_name=r'douyinsss.mp4'):
    
        size = 0
        headers = {
                "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.3.2.1000 Chrome/30.0.1599.101 Safari/537.36"}
        try:
           with closing(requests.get(video_url, headers = headers,  stream=True, verify = False)) as response:
                chunk_size = 1024
                #print(response.text)
                content_size = int(response.headers['content-length']) 
                if response.status_code == 200:
                    sys.stdout.write('  [文件大小]:%0.2f MB\n' % (content_size / chunk_size / 1024))
                    """
                    with open(video_name, 'ab') as file:
                        file.write(response.content)
                        file.flush()
                        print('receive data,file size : %d   total size:%d' % (os.path.getsize(video_name), content_size))
                    """
                    with open(video_name, "wb") as file:  
                        for data in response.iter_content(chunk_size = chunk_size):
                            file.write(data)
                            size += len(data)
                            file.flush()
        
                            #sys.stdout.write('  [下载进度]:%.2f%%' % float(size / content_size * 100) + '\r')
                            #sys.stdout.flush()
                    print('视频下载完了...')
        except Exception as e:
            print(e)
            print('下载出错啦.....')
       
    """
    视频下载地址获取
    Parameters:
        video_url: 带水印的视频地址
    Returns:
        视频下载链接,视频名字
    """
    def downloadUrlGet(self,  video_url):
        name = ''
        downloadUrl = ''
        headers = {
                'Proxy-Connection':'keep-alive', 
                'Host': 'v.douyin.com', 
                'Upgrade-Insecure-Requests':'1', 
                'Accept-Encoding': 'gzip, deflate', 
                'Accept-Language': 'zh-CN,zh;q=0.9', 
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36", 
                'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
            }
        req = requests.get(url = video_url, headers = headers,  verify = False)
        newUrl = req.url
        
        #print(req.text)
        print('newUrl:%s'%newUrl)
        print(req.history)
        #302重定向后的请求
        headers = {
                'Proxy-Connection':'keep-alive', 
                'Host': 'www.iesdouyin.com', 
                'Upgrade-Insecure-Requests':'1', 
                'Accept-Encoding': 'gzip, deflate', 
                'Accept-Language': 'zh-CN,zh;q=0.9', 
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36", 
                'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
            }
        req = requests.get(url = newUrl, headers = headers,  verify = False)
        reply = req.text
        #print(reply)
        p = reply.find('playAddr: "') +   len('playAddr: "')
        downloadUrl = reply[p: reply.find('"',  p)]
        print('downloadUrl:%s'%downloadUrl)
        p = reply.find('"name nowrap">') + len('"name nowrap">')
        name = reply[p: reply.find('<',  p)]
        print(name)
        return downloadUrl,  name


"""  开始主任务  """
url = 'http://v.douyin.com/dU2Dsn/'
handel = douyin()
downloadUrl,  name = handel.downloadUrlGet(url)
handel.video_downloader(url, name)

遇到下载不通的话,自己看看代码哈。

我自己做的客户端是用Pyqt5写的,代码的话是好几个文件夹,我就不贴出来了,源代码可以找我索要。上个界面图吧:

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用虫库如requests、beautifulsoup4等来Bilibili视频,Qt则是一种跨平台的GUI开发框架,可以用来开发Python GUI应用程序。如果要结合使用Python和Qt来Bilibili视频,可以使用PyQt5这个Python Qt库来实现。具体实现方法可以参考相关的Python和Qt教程。 ### 回答2: Bilibili是目前国内最大的动漫、游戏、乐、舞蹈等综合类视频分享平台。如果你是一名程序员或者学习编程的初学者,你可能已经意识到了Python作为一门功能强大的编程语言,并且有着强大的虫库,是一个Bilibili视频的不错选择。而QT则是一款功能强大的跨平台GUI开发工具,我们可以利用它来开发一个非常漂亮且交互性高的虫应用程序。下面我将介绍如何使用Python和QT来Bilibili视频。 首先,我们需要安装Python的两个第三方库request和bs4。向Bilibili发送HTTP请求获视频页面,使用beautiful soup从HTML页面中提所需的视频信息。 接着,我们需要使用Python来编写QT应用程序,用于获并呈现的Bilibili视频数据。首先需要安装PyQT5库,然后按照以下步骤来构建QT应用程序: 1.设置窗口布局和各个控件,包括文本输入框、按钮和视频显示区域。 2.为按钮添加Python的点击事件处理程序,这样我们就可以在QT中调用Python脚本。 3.在Python脚本中编写虫任务来获Bilibili视频页面数据,并解析数据并转换为Python对象。 4.在QT应用程序中,将从Python脚本返回的视频数据显示在QT中。可以使用QItemModel或QListView来呈现数据。 5.可以为播放器添加控件,如播放/暂停,进度条,控制量等,来提供更好的用户体验。 最后,我们需要在Python环境中开启一个简单的Web服务器,在QT中通过WebKit或QWebView来加载该Web应用程序。现在,我们可以在浏览器中打开应用程序UI,点击按钮,应用程序会调用Python脚本视频数据,再将结果呈现在QT界面中。 总之,通过Python和QT,我们可以快速构建一个功能强大的Bilibili视频虫应用程序。我们可以通过QT呈现和操作Python虫抓的数据,并通过Python的数据分析和机器学习工具来对数据进行分析和处理。这将为我们提供从Bilibili平台中获得的有用洞察力和知识,以便我们做出更好的决策。 ### 回答3: bilibili是一家普及面极广的弹幕视频网站,用户量众多,内容丰富,其中还有许多值得一看的视频。如果大家想要使用 Python bilibili 上的视频,可以使用 requests 和 BeautifulSoup 库,这两个库都是 Python 虫中比较常用的。 首先,需要用到 requests 库登录 bilibili 网站,获到 cookies,然后通过 cookies 来访问需要的页面。对于想要 b站 up主 的视频的话,可以通过分析 b站的分类链接来找到我们需要的视频链接。 其次,需要使用 BeautifulSoup 库来解析 bilibili 网站页面的 html 源代码,然后通过标签属性和 class 类名等信息来定位我们想要的视频链接。 最后,通过定位到的视频链接来下载视频,这里建议使用 pytube 库来完成视频的下载操作,因为这个库比较容易使用,而且速度也很快。 需要注意的是,在 bilibili 视频时,不要过于频繁地请求同一个页面,以防被网站封禁 IP,同时也不要随意地下载和分享视频,要尊重视频内容的版权。 总之,使用 Python bilibili 上的视频,需要涉及到网站登录、页面解析和视频下载等一系列操作,掌握了这些技术之后,就能够轻松地实现自己想要的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值