吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2401|回复: 6
收起左侧

[其他原创] low抖音爬取[面向对象]

[复制链接]
Jingk 发表于 2020-3-18 19:29
本帖最后由 Jingk 于 2020-3-18 19:32 编辑

原作者@Zeaf   我改了下。。
源代码地址传送门  
QQ图片20200318193131.png
carbon.png
import tkinter as tk
from tkinter import END  # 单独把这个申明是因为后面的往text控件插入内容会报错
import requests
import re
import time
import wget

class Douyin(object):
    """docstring for Womdows"""
    def __init__(self):
        self.tk=tk
        self.window = tk.Tk()
        self.show_text=tk.Text()
        self.var_token = tk.StringVar()

    def get_tar(self):
        token = self.var_token.get()
        time.sleep(0.5)  # 停顿1s
        if token =='':
            return self.show_text.insert(END,'请输入一个地址\n')
        if token in 'v.douyin.com':
            pat = '(https://v.douyin.com/.*?/)'
            url = re.compile(pat).findall(share)[0]# 正则匹配分享链接
        else:
            url=token
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3904.108 Safari/537.36'
        }
        r = requests.get(url, headers=headers)
        pat = 'playAddr: "(.*?)",'
        name_ = '<p class="name nowrap">(.*?)</p>'
        info_ = '<p class="desc"(.*?)</p>'
        play = re.compile(pat).findall(r.text)[0].replace("playwm", "play")#视频地址
        name_a = re.compile(name_).findall(r.text)[0]#发布人作者
        info_a = re.compile(info_).findall(r.text)[0].replace('>','')#发布详情
        headers = {
            'user-agent': 'Android',
        }
        r = requests.get(play, headers=headers, allow_redirects=False)
        geturl = r.headers['location']
        response = requests.get(geturl, headers=headers)
        # 写入文本
        self.show_text.insert(END, '获取到的链接:\n' + geturl +'\n下载中--{}{}'.format(name_a,info_a))
        wget.download(geturl, '{}{}.mp4'.format(name_a,info_a))
        return self.show_text.insert(END,'\n{} {}下载成功!'.format(name_a,info_a))

    class Windows:
        def __init__(self,tit_name,window_y_x):
            self.douyin = Douyin()
            self.douyin.window.title(tit_name)
            self.douyin.window.geometry(window_y_x)
        def Show_text(self,text,text_x,text_y,font=('华文行楷',16)):
            self.douyin.tk.Label(self.douyin.window, text=text,font=font).place(x=text_x, y=text_y)
        def Show_input_text(self,x,y):
            self.douyin.show_text.place(x=x,y=y)
        def Show_input(self,x,y):
            self.douyin.tk.Entry(self.douyin.window, textvariable=self.douyin.var_token).place(x=x, y=y)
        def Show_button(self,text,font,x,y):
             self.douyin.tk.Button(self.douyin.window,text=text, font=font, command=self.douyin.get_tar).place(x=x, y=y)
        def run(self):
            self.douyin.window.mainloop()
        def __del__(self):
            return print('程序结束')

if __name__ == '__main__':
    a=Douyin.Windows('抖音小视频','900x600')
    a.Show_text('抖音无水印在下',50,50,font=("华文行楷",30))
    a.Show_text('输入地址:',40,138,font=('华文行楷',20))
    a.Show_input_text(300,150)
    a.Show_input(160,150)
    a.Show_button('go',20,150,200)
    a.run()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

huxian2020 发表于 2020-3-18 19:50
第三方接口 就不会了吗
poejie20200214 发表于 2020-3-18 19:58
yangxiao 发表于 2020-3-18 20:03
leisukeji 发表于 2020-3-18 20:19
爬什么?
对星空的承诺 发表于 2021-3-28 09:42
老大,“Spyshelter Firewall 10.6.1 安装包 + key” 给个天翼云或者百度的安装包呗?
Sias 发表于 2021-3-28 10:20
这个是去水印的?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表