了解了HTMLParser库的知识后,选择做一个小训练,对https://www.python.org/events/python-events/这个网址进行分析,之后输出其中每次会议的题目、时间和地点。

如果要简单了解下HTMLParser库可以点击打开

下面进入正题

这是网站的源码,由此可以看出会议全部都是在ul下,而一个一个会议则是分开在一个一个li中

整体的思路就是写一个继承了HTMLParser的类,并且重载方法,然后筛选出我们需要的date

class MyHTMLParser(HTMLParser):flag = 0new = []get_data = 0def handle_starttag(self, tag, attrs):#判断该标签是否存在if tag == 'ul':for attr in attrs:if re.match("list-recent-events menu",attr[1]):self.flag = 1#处理a元素if tag == 'a' and self.flag == 1:self.get_data = 'tittle'#处理time元素if tag == 'time' and self.flag == 1:self.get_data = 'time'#处理span元素if tag == 'span' and self.flag == 1:self.get_data = 'addr'#当处理尾标签时则初始flagdef handle_endtag(self, tag):if self.flag == 1 and tag == 'ul':self.flag = 0#对data的处理def handle_data(self, data):if self.get_data and self.flag == 1:#如果找到了题目,则新建一个dict来保存if self.get_data == 'tittle':self.new.append({self.get_data : data})#如果找到了时间或者地点,则取出new这个list最后一个dict,然后添加键值else:self.new[len(self.new)-1][self.get_data] = dataself.get_data = None

全部的代码在这里

如果有问题可以及时问我

转载于:https://www.cnblogs.com/GF66/p/9785492.html

HTMLParser-实战相关推荐

  1. Python常用内建模块(内含实例)

    文章目录 datetime 获取当前日期和时间 获取指定日期和时间 datetime转化为timestamp timestamp转化为datetime str转化为datetime datetime转 ...

  2. ASP.NET Core 快速入门(实战篇)

    上篇讲了<asp.net core在linux上的环境部署>.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).n ...

  3. JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser

    转载自 JSOUP 教程-- Java爬虫,简易入门,秒杀htmlparser 关于爬虫,之前一直用做第一个站的时候,记得那时候写的 爬虫  是爬sina 的数据,用的就是 htmlparser  可 ...

  4. Python爬虫实战之xpath解析

    XPath 是一门在 XML 文档中查找信息的语言,最初是用来搜寻 XML 文档的,但是它同样适用于 HTML 文档的搜索. 所以在Python爬虫中,我们经常使用xpath解析这种高效便捷的方式来提 ...

  5. Python爬虫入门2(实战)

    文章目录 13.B站直播间弹幕爬取 代码: 运行结果: 14.xpath解析爬虫 入门: lxml安装: 基本格式: 15.xpath入门讲解 材料: py代码: 运行结果: 技巧: 16.xpath ...

  6. Python3.X 爬虫实战(静态下载器与解析器)

    [工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 这两天比较忙,各种锅锅接,忙里偷闲完结这一篇吧.在我们在上一篇&l ...

  7. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(4):解析库Xpath的使用方法总结

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...

  8. IDEA的Docker插件实战(Dockerfile篇)

    IDEA的Docker插件实战(Dockerfile篇) IntelliJ IDEA的Docker插件能帮助我们将当前工程制作成Docker镜像.运行在指定的远程机器上,是学习和开发阶段的好帮手,本文 ...

  9. 数据结构(04)— 线性顺序表实战

    1. 设计思路 本实战的实质是完成对学生成绩信息的建立.查找.插入.修改.删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运 ...

  10. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)

    置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...

最新文章

  1. linux常用命令linux自动挂载WinXP系统下的分区
  2. CTFshow 反序列化 web260
  3. CVPR 2022|MLP才是无监督学习比监督学习迁移性能好的关键因素
  4. openstack 之 控制节点物理机备份
  5. Why Apache Spark is a Crossover Hit for Data Scientists [FWD]
  6. wget for windows 下载与安装
  7. 2012 安装mysql 5.6_如何安装mysql server 5.6
  8. 第七天Python学习记录
  9. Maven的帮助文档ー查看各个插件的作用--- 【maven-assembly-plugin】
  10. 三运放差分放大电路分析_运放19——三运放仪表放大器工作原理分析
  11. java定时任务_定时任务3种实现方式
  12. js 调用谷歌插件截图跨域的iframe---FireShot
  13. HC05蓝牙模块与stm32通信
  14. 【iOS 1 行代码系列】之 一行代码搞定TableView组头悬停
  15. html5指纹特效,小米11指纹特效很神奇这样设置
  16. 【3D打印机】原来配置Marlin2.0这么简单,别说我没告诉你。
  17. 词向量经典模型:从word2vec、glove、ELMo到BERT
  18. 移动安全app渗透测试之渗透流程、方案及测试要点讲解
  19. linux 第十一天 linuxprobe
  20. Tita OKR实施攻略

热门文章

  1. 使用 Log4Net 记录日志
  2. 企业管理软件开发不能割裂各系统的功能
  3. 你如何去管理你的团队?
  4. javaweb学习总结(四十五)——监听器(Listener)学习二
  5. es6 --- promise.prototype.then的链式引用
  6. ES5-10 原型、原型链、闭包立即执行函数、插件开发
  7. JS函数方法Call Apply Bind运用
  8. solaris 10安装Oracle10.2g
  9. halcon模板匹配测试流程
  10. ffmpeg的编译大全