Python 网页解析HTMLParse的实例详解
作者:qindongliang1922 发布时间:2022-08-29 06:27:25
标签:Python,网页解析,HTMLParse
Python 网页解析HTMLParse的实例详解
使用python将网页抓取下来之后,下一步我们就应该解析网页,提取我们所需要的内容了,在python里提供了一个简单的解析模块HTMLParser类,使用起来也是比较简单的,解析语法没有用到XPath类似的简洁模式,但新手用起来还是比较容易的,看下面的例子:
现在一个模拟的html文件:
<html> <title id='main' mouse='你好'>我是标题</title><body>我是内容</body> </html>
需求是,提取出标题的属性值,以及内容:
代码如下:
import html.parser as h
class MyHTMLParser(h.HTMLParser):
a_t=False
def handle_starttag(self, tag, attrs):
#print("开始一个标签:",tag)
print()
if str(tag).startswith("title"):
print(tag)
self.a_t=True
for attr in attrs:
print(" 属性值:",attr)
def handle_endtag(self, tag):
if tag == "title":
self.a_t=False
#print("结束一个标签:",tag)
def handle_data(self, data):
if self.a_t is True:
print("得到的数据: ",data)
p=MyHTMLParser()
p.feed("<html> <title id='main' mouse='你好'>我是标题</title><body>我是内容</body> </html>")
p.close()
运行结果如下:
title
属性值: ('id', 'main')
属性值: ('mouse', '你好')
得到的数据: 我是标题
主要的技术就是继承了HTMLParser类,然后重写了里面的一些方法,来完成自己的业务,从上面的代码里,发现如果想获取某个标签的内容,还是比较麻烦的,当然这是python里面最简单的html解析方式,还有很多其他组件,scrapy等等,里面支持Xpath路径解析,使用起来非常简洁清爽。
解析代码学会之后,我们就可以将使用urllib包,抓取到的数据交给htmlparser解析,从而提取出我们所需要的内容。
来源:http://qindongliang.iteye.com/blog/2142956
0
投稿
猜你喜欢
- 官方文档https://developers.weixin.qq.com/miniprogram/dev/devtools/download
- 故障状况:php网站连接mysql失败,但在命令行下通过mysql命令可登录并正常操作。解决方案:1、命令行下登录mysql,执行以下命令:
- 前言问题:做requests请求时遇到如下报错:{“code”:“500&
- PHP Too few arguments to function的解决过去自定义函数的时候如果参数不足,则会抛出一个警告,但是在7.1开始
- 1. str.format 的引入在 Python 中,我们可以使用 + 来连接字符串,在简单情况下这种方式能够很好的工作。但是当我们需要进
- 最近在研究Hacker News API时遇到一个HTTPS问题。因为所有的Hacker News API都是通过加密的HTTPS协议访问的
- 上文:栅格:从混乱到秩序Jacci Howard Bear 的英文原文:http://desktoppub.about.com/od/gri
- 目录1 标准化2 归一化3 正则化4 离散化5 白化 机器
- 朋友去面试。对方问他:说说你之前做的那个站,有什么地方好的?朋友就说:用户体验比别的站好。对方又问:你怎么知道用户体验比别的好?朋友于是又磕
- 事情是这样的五一假期第一天值班隔壁有点喜欢的小姐姐突然跑过来跟我聊天“微信账号切换来切换去 特别麻烦”“怎么能同时打开多个呢?”我心想,你有
- 任何一位数据库程序员都会有这样的体会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉
- 这篇文章主要介绍了Python读取表格类型文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 1. 安装Opencv包pip install opvencv-python2.实现代码:视频转为图片:import cv2cap=cv2.
- 本文实例讲述了Python数据结构与算法之完全树与最小堆。分享给大家供大家参考,具体如下:# 完全树 最小堆class CompleteTr
- 引言我们经常听到"因为GIL的存在,python的多线程不能利用多核CPU",现在我们暂且不提GIL,python能不能
- 随着同时开发的项目越来越多,需要不停的在各个不同版本的 python 环境之间切换,所以想到了pyenv。以前一直使用的 vir
- 本文实例讲述了php实现比较全的数据库操作类。分享给大家供大家参考。具体如下:<?php class database {  
- 前言在我们日常生活中,时间概念常伴我们左右。让我们简单的回忆一下自己的一天,大致有以下时间点:8:00,清晨的阳光照射到床头伴着闹钟,你从睡
- Asp中Server.ScriptTimeOut属性需要注意的一点Server.ScriptTimeout 这个属性给定Asp脚
- keras 中fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1,