tkinter+爬虫(re库,tkinter库详解)

1.安装和认识本次实验所需要的库

re库(正则库,本次实验用于匹配文本)

tkinter库 (GUI库,用于制作可视化界面)

requests库 (网络请求库,用于制作爬虫)

re和tkinter均为python自带库无需安装

requests为第三方库需要自己安装

安装命令为: pip install requests  我这里已经安装好了

安装好后可用命令pip list查看

2.进行爬虫与GUI界面的编写

我们首先进行爬虫编写

def bue(): #创建函数bue
    url = ent.get() #获取GUI输入框输入的url
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0'} #UA伪装
    pink = requests.get(url=url,headers=headers) #请求
    pink.encoding = 'utf-8' #设置编码
    obj=re.compile(
                 r'<td align="center">(?P<ls>.*?)</td>.*?'
                 r'<td class="al"><a href=".*?" target="_blank" rel="nofollow" itemid=".*?">(?P<tist>.*?)</a></td>.*?'
		         r'<td>(?P<thousand>.*?)</td>'
               ,re.S)  #正则匹配需要的字符
    global s #设置s为全局变量
    s = obj.finditer(pink.text) #获取.text
    for it in s :
            tit = (it.groupdict(),"\n") #换行
            
            txt.insert(END,tit) #将爬取的数据写入GUI中的多行文本框
            txt.see(END)
    
def clearBox():              
    txt.delete("1.0", "end") #清除多行文本框文本

(?P<ls>.*?)

要匹配的文本
.*?换行匹配或贪婪匹配
\n用于爬取的文本换行

进行GUI界面编写

root = Tk()
root.title('测试') 
root.geometry('680x530+400+200') #设置长宽和出现位置

label = Label(root,text="请输入:",font=("华文行楷",17)) #设置输入框前面的文本
label.grid() #默认布局

ent = Entry(root, width=40,font=("隶书",17)) #设置输入框
ent.grid(row=0,column=1) #设置布局0排1列

btn1 = Button(root,text="爬取",font=("隶书",15),command=bue) #设置按钮并绑定函数bue
btn1.grid(row=0,column=2,padx=30) #设置布局0排2列,设置左右边距为30

txt = scrolledtext.ScrolledText(root, width=90,height=30) #设置带滚动条的多行文本框
txt.grid(row=1,columnspan=3,pady=25) #设置布局1排横跨3列,上下边距25

btn1 = Button(root, text="Quit",bg='red',font=("隶书",15),command=root.quit) #设置退出按钮
btn1.grid(row=2,column=2) #设置布局2排2列

btn2 = Button(root,text="清空",bg='green',font=("隶书",15),command=clearBox) #设置清空按钮,并绑定clearBox函数
btn2.grid(row=2,column=0) #设置布局2排0列 

root.mainloop()
row设置控件排
column设置控件列
colimnpady设置控件跨列
pady设置控件上下边距
padx设置控件左右边距

一定要设置边距,不然控件会挤在一起非常不美观

完整代码

import re
import requests
from tkinter import *
from tkinter import scrolledtext

def bue():
   
    url = ent.get()
    
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0'}
    pink = requests.get(url=url,headers=headers)
    pink.encoding = 'utf-8'
    obj=re.compile(
                 r'<td align="center">(?P<ls>.*?)</td>.*?'
                 r'<td class="al"><a href=".*?" target="_blank" rel="nofollow" itemid=".*?">(?P<tist>.*?)</a></td>.*?'
		         r'<td>(?P<thousand>.*?)</td>'
               ,re.S)
    global s
    s = obj.finditer(pink.text)

    for it in s :
            tit = (it.groupdict(),"\n")
            
            txt.insert(END,tit)
            txt.see(END)
    
def clearBox():              
    txt.delete("1.0", "end")

root = Tk()
root.title('测试')
root.geometry('680x530+400+200')

label = Label(root,text="请输入:",font=("华文行楷",17))
label.grid()

ent = Entry(root, width=40,font=("隶书",17))
ent.grid(row=0,column=1)

btn1 = Button(root,text="爬取",font=("隶书",15),command=bue)
btn1.grid(row=0,column=2,padx=30)

txt = scrolledtext.ScrolledText(root,width=90,height=30)
txt.grid(row=1,columnspan=3,pady=25)

btn1 = Button(root, text="Quit",bg='red',font=("隶书",15),command=root.quit)
btn1.grid(row=2,column=2)

btn2 = Button(root,text="清空",bg='green',font=("隶书",15),command=clearBox) 
btn2.grid(row=2,column=0)

root.mainloop()

运行结果

本次博客就完结了

如果有不懂的兄弟可以在评论区交流

下篇文章再见(希望三连)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您想了解有关使用Tkinter与MySQL进行交互的信息吗?若是,请继续阅读: TkinterPython的标准GUI,可以用于创建图形用户界面。MySQL是一种流行的关系型数据管理系统,可以用于存储和管理数据。 要使用Tkinter和MySQL进行交互,您需要使用Python的MySQL驱动程序,例如MySQL Connector / Python。安装此驱动程序后,您可以在Python代码中使用MySQL连接对象来连接到MySQL数据,并执行SQL查询和操作。 以下是使用Tkinter和MySQL进行交互的基本流程: 1. 导入Tkinter和MySQL Connector / Python模块: ```python import tkinter as tk import mysql.connector ``` 2. 创建Tkinter窗口: ```python root = tk.Tk() root.title("My App") ``` 3. 连接到MySQL数据: ```python mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) ``` 4. 创建MySQL游标对象: ```python mycursor = mydb.cursor() ``` 5. 执行SQL查询: ```python mycursor.execute("SELECT * FROM mytable") myresult = mycursor.fetchall() ``` 6. 处理查询结果并显示在Tkinter窗口中: ```python result_label = tk.Label(root, text=myresult) result_label.pack() ``` 请注意,这只是一个基本示例。在实际应用中,您需要使用其他Tkinter小部件,例如输入框和按钮,以便用户可以输入数据并执行操作。此外,您需要编写更复杂的SQL查询和操作来满足您的应用程序需求。 希望这可以帮助您入门Tkinter和MySQL的交互。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中将jkx

一起努力吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值