【Python爬虫实战+Tkinter+Threading】UI界面线程守护表情包爬虫项目——斗图?我爬一堆表情包giao哭你!

博主分享了一个使用Python爬虫、Tkinter GUI和Threading实现的表情包爬虫项目,包括1.0和2.0两个版本。2.0版本改进了图片保存方式,爬取的图片按顺序分文件夹保存。文章还介绍了如何通过cmd命令对项目进行打包,并提醒在打包时需注意的事项,如避免使用汉字文件名和注释特定代码以防止打包失败。
摘要由CSDN通过智能技术生成

        这一段博主在禹州进行项目实训,恰好碰到的主题是博主最擅长的爬虫。本来前一段时间写了一篇腾讯漫画js逆向爬虫,但是最近这两天由于腾讯漫画源代码的更改导致在js逆向的最后获取数据解密时屡次报出编码错误。思路没问题,问题就出在js逆向上(有兴趣的朋友可以通过python逆向解决编码问题或者是nodejs、excejs直接执行解析js代码)。因此,只好随便拿了一个几个月前所写的表情包爬虫项目作为替代。



源代码

表情包项目1.0版本

        具备UI界面和线程守护,功能齐全,但是爬取出的图片混杂在一个文件夹里,效果体验较差。

import requests
from lxml import etree
import os
import sys
from urllib.parse import quote  # 对汉字进行URL编码,URL编码的方式是把需要编码的字符转化为 %xx 的形式
import tkinter as tk
import tkinter.messagebox
import threading   # 使用线程可解决UI界面卡死问题
import time   # 本项目主要使用time.sleep()进行延时
# import PythonMagick   # 图片处理

class the_emoticon():
    def __init__(self):
        # 创建UI图形化界面
        self.window = tk.Tk()  # 创建最上层主窗口
        # 将图片转换成ico格式
        # self.logo = PythonMagick.Image('./logo.png')
        # self.logo.sample('128x128')
        # self.logo.write('./logo.ico')
        self.window.iconbitmap('./logo.ico')
        self.window.title("表情包批量下载工具 - 白泽Hakutaku")  # 窗口标题
        self.sw = (self.window.winfo_screenwidth() - 400) / 2   # 得到屏幕宽度
        self.sh = (self.window.winfo_screenheight() - 150) / 2   # 得到屏幕高度
        self.window.geometry("400x150+%d+%d" % (self.sw, self.sh))  # 窗口大小+窗口位置
        self.window.resizable(0, 0)   # 设置窗口大小不可缩放,防止用户调整尺寸
        # 定义Label组件用于显示字体
        self.tit = tk.Label(self.window, text="表情包官网:http://www.doutula.com/", font=("华文行楷", 14)).place(x=60, y=10)
        self.tit1 = tk.Label(self.window, text="(平均一页可爬取12x6=72张表情包)", font=("华文行楷", 8)).place(x=100, y=30)
        self.pages = tk.Label(self.window, text="表情包页数:", font=("微软雅黑", 10)).place(x=80, y=50)
        self.majors = tk.Label(self.window, text="表情包主题:", font=("微软雅黑", 10)).place(x=80, y=80)
        # 分别定义两个输入框(爬取页数,爬取主题)
        self.var_page = tk.StringVar()
        self.var_major = tk.StringVar()
        self.entry_page = tk.Entry(self.window, textvariable=self.var_page)
        self.entry_page.place
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值