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

这篇具有很好参考价值的文章主要介绍了tkinter+爬虫(re库,tkinter库详解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

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

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

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

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

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

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

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()

运行结果

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

本次博客就完结了

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

下篇文章再见(希望三连)文章来源地址https://www.toymoban.com/news/detail-439974.html

到了这里,关于tkinter+爬虫(re库,tkinter库详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • tkinter+爬虫+pygame实现音乐播放器

    本文将涉及爬虫(数据的获取),pygame(音乐播放器),tkinter(界面显示),将他们汇聚到一起制造一个音乐播放器,欢迎大家的订阅。 pip install requests pip install parsel pip install lxpy pip install pygame

    2024年02月20日
    浏览(35)
  • Python网页爬虫爬取起点小说——re解析网页数据

    !!注意:我们获取到的网页响应数据,可能会与网页源代码中呈现的格式不同。因为有些网页文件是用JavaScript加载的,浏览器会自动将其解析成html文档格式,而我们获取到的内容是JavaScript格式的文档。所以获取到响应数据之后先要查看内容是否与网页源码中的一致,不一

    2024年02月04日
    浏览(58)
  • 『python爬虫』06. 数据解析之re正则解析(保姆级图文)

    欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 Regular Expression, 正则表达式, ⼀种使⽤表达式的⽅式对字符串,进⾏匹配的语法规则(按照一定规则的查找) ⽹⻚源代码本质上就是⼀个超⻓的字符串, 用正则就好像是在我们的txt中查找指定

    2024年02月02日
    浏览(64)
  • Python爬虫网易云音乐,Tkinter制作音乐播放器

    目录 一、效果展示 二、环境 三、实现过程 四、源码 页面的美化以及功能还有待升级~ 先来说一下已有功能吧: 可以在搜索框中通过歌曲或歌手名称进行搜索,效果和在网易云官网搜索一样。 点击开始下载,就会将搜索结果的第一条歌曲下载到指定文件夹 下载完毕后,会遍

    2024年02月04日
    浏览(49)
  • 【网络安全带你练爬虫-100练】第10练:re的正则匹配、文件夹创建、图片下载

    目录 一、目标1:正则匹配图片的URL 二、目标2:创建文件夹 三、目标3:保存图片到test文件夹中  四、网络安全小圈子 URL位置 我们可以找到img都在这个标签里面     请求方法GET   提取URL位置 需要掌握的 目标标签如下: 需要提取的内容如下: (多加了一个为转义字

    2024年02月13日
    浏览(54)
  • Python 爬虫之 requests模块(ua伪装、代理、cookies、防盗链 Referer)、re模块、xpath模块、selenium

    下载 发送 get 请求 案例:百度 发送 post 请求 案例:百度翻译 UA 伪装 代理 cookies 登录 案例:17k小说网 防盗链 Referer 案例:梨视频 findall search finditer 预加载 提前写好正则表达式 匹配换行 re.S 在 html 中使用 原子组使用别名 爬取豆瓣电影 https://movie.douban.com/chart lxml.etree.XMLSy

    2024年01月24日
    浏览(39)
  • Python re模块用法详解

    re模块常用方法 re.compile() 该方法用来生成正则表达式对象,其语法格式如下: regex=re.compile(pattern,flags=0) 参数说明: pattern:正则表达式对象。 flags:代表功能标志位,扩展正则表达式的匹配。 re.findall() 根据正则表达式匹配目标字符串内容。 re.findall(pattern,string,flags=0) 该函数

    2024年02月09日
    浏览(46)
  • python基础教程:re模块用法详解

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、正则表达式的特殊字符介绍 正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ 素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可 二、re模块的方法介绍 1、匹配类方

    2024年02月11日
    浏览(40)
  • 【Python爬虫01】Selenium简单认识

    在现代的Web开发中,自动化测试是不可或缺的一环。而Selenium是一个强大的Python库,用于自动化Web浏览器的操作和测试。本篇博文将为您介绍Selenium的基础知识和使用方法,并通过案例说明如何进行Web自动化测试。 Selenium是一个开源的自动化测试框架,主要用于模拟用户与We

    2024年02月16日
    浏览(39)
  • 【Python】系列模块之标准库re详解

        感谢点赞和关注 ,每天进步一点点!加油! 目录 一、Python 正则表达式 1.1 re模块常用操作 1.2 re.match 1.3 re.search 1.4 re.findall 1.5 re.compile 函数 1.6 re.sub 检索和替换 1.7 re.split拆分 1.8 实战案例:根据文件名匹配文件并移动 Python 系列文章学习记录: Python系列之Windows环境安装配

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包