python爬取下载链接的文件,python爬取网页详细教程

大家好,本文将围绕python 爬取网页内容并保存到数据库展开说明,利用python爬取简单网页数据步骤是一个很多人都想弄明白的事情,想搞清楚python爬取下载链接的文件需要先了解以下几个事情。

import tkinter as tk  # 使用Tkinter前需要先导入
import tkinter.messagebox  # 要使用messagebox先要导入模块
import requests #获取链接库
import random #随机函数库

#实例化object,建立窗口window
window = tk.Tk()
 
#给窗口的可视化起名字
window.title('知乎视频下载')
 
#设定窗口的大小(长 * 宽)
window.geometry('450x180')  # 这里的乘是小x
 
# 定义一个函数功能,用来代表菜单选项的功能,这里为了操作简单,定义的功能比较简单
counter = 0
def do_job():
    tkinter.messagebox.showinfo(title='帮助', message='获取视频链接方法\n1."鼠标右键->点击检查"或者"按键盘F12"。\n2."点击检查窗口左上角的鼠标"或者"Ctrl+Shift+C"进入选取模式\n3.点击视频,查看html标签“div class="_190hxbq"->src="链接"”\n把链接复制到输入框下载即可用python绘制任意角星。') # 提示信息对话窗

#版本更新说明
def gx_sming():
    b1 ="知乎下载视频程序\n1.0版本->实现基本下载视频功能\n"
    b2 ="2.0->增加输入框清空按钮->窗口大小调整 ->增加帮助->增加目录\n"
    b3 ="3.0 解决文件重复读写的问题(随机函数生成后缀)\n"
    tkinter.messagebox.showinfo(title='版本更新说明', 
    message=b1+b2+b3                           
                                )# 提示信息对话窗

# 创建一个菜单栏,这里我们可以把他理解成一个容器,在窗口的上方
menubar = tk.Menu(window)
 
# 创建一个File菜单项(默认不下拉,下拉内容包括New,Open,Save,Exit功能项)
filemenu = tk.Menu(menubar, tearoff=0)
# 将上面定义的空菜单命名为File,放在菜单栏中,就是装入那个容器中
menubar.add_cascade(label='目录', menu=filemenu)
 
# 在File中加入New、Open、Save等小菜单,即我们平时看到的下拉菜单,每一个小菜单对应命令操作。
filemenu.add_command(label='使用方法', command=do_job)
filemenu.add_command(label='版本更新说明', command=gx_sming)

filemenu.add_separator()    # 添加一条分隔线
filemenu.add_command(label='退出程序', command=window.quit) # 用tkinter里面自带的quit()函数

#创建菜单栏完成后,配置让菜单栏menubar显示出来
window.config(menu=menubar) 

# 在图形界面上设定标签
var = tk.StringVar()    # 将label标签的内容设置为字符类型,用var来接收hit_me函数的传出内容用以显示在标签上
l = tk.Label(window, textvariable=var, bg='#000000', fg='white', font=('微软雅黑', 12), width=30, height=2)
# 说明: bg为背景,fg为字体颜色,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
l.pack()

#链接输入框
e2 = tk.Entry(window, show=None, width='35', font=('微软雅黑', 14))  # 显示成明文形式
e2.pack()

# 定义一个函数功能(内容自己自由编写),供点击Button按键时调用,调用命令参数command=函数名
on_hit = False
def hit_me():
    global on_hit
    if on_hit == False:
        on_hit = True
        
        #获取输入框的值e2导值给url
        url = e2.get()   
 
        r = requests.get(url, stream=True)
        
        #利用随机函数,解决重负覆盖视频问题
        list=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
        word=random.choice(list)
        number = random.randint(1,10)
        name1 = 'vdieo'
        name2 = '.mp4'
        vdieo = str(name1) + str(word) + str(number) + str(name2) 

        with open(vdieo, "wb") as mp4:
            for chunk in r.iter_content(chunk_size=1024 * 1024):
                if chunk:
                    mp4.write(chunk)

        #提醒下载成功            
        var.set('下载成功')

    else:
        on_hit = False
        var.set('链接都没有下nm呢?')

#清空按钮
def hit_me2():
    global on_hit
    if on_hit == False:
        on_hit = True  
        e2.delete(0, 'end')
        var.set('清空成功')
    else:
        on_hit = False
        
# 第5步,在窗口界面设置放置Button按键
b = tk.Button(window, text='下载', font=('微软雅黑', 12), width=10, height=1, bg='#FFFFFF', command=hit_me)
b.pack()

#清空按钮
q = tk.Button(window, text='清空', font=('微软雅黑', 12), width=10, height=1, bg='#FFFFFF', command=hit_me2)
q.pack()

# 第6步,主窗口循环显示
window.mainloop()

get()方法获取Entry 文本框的内容:
txt = entry.get()
1.0 实现基本功能-》开始打包exe程序
下载PyInstaller打包库
#利用pip install PyInstaller 打包exe程序
pyinstaller D:\python_test.py
#当前文件目录 pyinstaller -F ann.py -w
在我们打包的时候:如果是直接指定python文件进行pyinstaller打包的话,如果没有指定路径,需要进入打包文件的目录下执行下面命令,否则还得加上文件路径才能打包。
方法一:pyinstaller -F mycode.py --noconsole
方法二:pyinstaller -F -w mycode.py (-w就是取消窗口)
当你重新打包一个文件后,就会发现只有图形界面了,没有黑色框框,亲测有效(提醒:如果没进入文件路径,打包的时候还需要指定文件路径哦)。

2.0 输入框清空-》窗口大小调整 -》帮助-》目录
e2.delete(0, ‘end’)

窗口调整
https://www.runoob.com/python/python-tkinter-entry.html

1.鼠标右键->点击检查或者按键盘F12。\n
2.点击检查窗口左上角的鼠标或者"Ctrl+Shift+C"进入选取模式\n
3.点击视频注意“div class="_190hxbq"->src=“链接””

3.0 解决文件重复读写的问题(随机函数生成后缀)

效果图:
在这里插入图片描述

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值