【脚本语言系列】关于Python文本解析HTML,你需要知道的事

如何使用HTMLParser

  • 获取页面图片地址(www.baidu.com)
# -*- coding:utf-8 -*-
#
import Tkinter
import urllib
import HTMLParser
class MyHTMLParser(HTMLParser.HTMLParser):
    def __init__(self):
        HTMLParser.HTMLParser.__init__(self)
        self.gifs = []
        self.jpgs = []
    def handle_starttag(self, tags, attrs):
        if tags == "img":
            for attr in attrs:
                for t in attr:
                    if "gif" in t:
                        self.gifs.append(t)
                    elif "jpg" in t:
                        self.jpgs.append(t)
                    elif "jpeg" in t:
                        self.jpgs.append(t)
                    else:
                        pass
    def get_gifs(self):
        return self.gifs
    def get_jpgs(self):
        return self.jpgs
class Window:
    def __init__(self, root):
        self.root = root
        self.label = Tkinter.Label(root, text = "Input URL:")
        self.label.place(x = 5, y = 15)
        self.entryUrl = Tkinter.Entry(root, width = 30)
        self.entryUrl.place(x = 65, y = 15)
        self.get = Tkinter.Button(root, text = 'Get Picture', command = self.Get)
        self.get.place(x = 280, y = 15)
        self.edit = Tkinter.Text(root, width = 470, height = 600)
        self.edit.place(y = 50)
    def Get(self):
        url = self.entryUrl.get()
        page = urllib.urlopen(url)
        data = page.read()
        parser = MyHTMLParser()
        # print data
        parser.feed(data)
        self.edit.insert(Tkinter.END, "====GIF====\n")
        gifs = parser.get_gifs()
        for gif in gifs:
            self.edit.insert(Tkinter.END, gif + '\n')
        self.edit.insert(Tkinter.END, "===========\n")
        self.edit.insert(Tkinter.END, "====JPG====\n")
        jpgs = parser.get_jpgs()
        for jpg in jpgs:
            self.edit.insert(Tkinter.END, jpg + '\n')
        self.edit.insert(Tkinter.END, "===========\n")
        page.close()
root = Tkinter.Tk()
window = Window(root)
root.minsize(600, 480)
root.maxsize(600, 480)
root.mainloop()

这里写图片描述
这里写图片描述
1. 用户界面
这里写图片描述
2. 界面输出
这里写图片描述

什么是HTMLParser

在Python中可以使用HTMLParser模块处理HTML, 获取页面中感兴趣的内容。
HTMLParser模块提供了对HTML标记处理的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值