html.parser python_python模块之HTMLParser

HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它 主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然 后重新定义这几个以handler_开头的函数即可。这几个函数包括:

handle_startendtag  处理开始标签和结束标签

handle_starttag     处理开始标签,比如

handle_endtag       处理结束标签,比如

handle_charref      处理特殊字符串,就是以开头的,一般是内码表示的字符

handle_entityref    处理一些特殊字符,以&开头的,比如  

handle_data         处理数据,就是data中间的那些数据

handle_comment      处理注释

handle_decl         处理

handle_pi           处理形如<?instruction>的东西

这里我以从网页中获取到url为例,介绍一下。要想获取到url,肯定是要分析标签,然后取到它的href属性的值。下面是代码:

1 #-*- encoding: gb2312 -*-

2 importHTMLParser3

4 classMyParser(HTMLParser.HTMLParser):5 def __init__(self):6 HTMLParser.HTMLParser.__init__(self)7

8 defhandle_starttag(self, tag, attrs):9 #这里重新定义了处理开始标签的函数

10 if tag == 'a':11 #判断标签的属性

12 for name,value inattrs:13 if name == 'href':14 printvalue15

16

17 if __name__ == '__main__':18 a = '

test链接到163'

19

20 my =MyParser()21

22 #传入要分析的数据,���html的。

23 my.feed(a)

如果是python3的,导入为 form html.request import HTMLParser ,具体可以参考http://docs.python.org/library/htmlparser.html

执行结果

http://www.163.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 5.4 aws,使用 Amazon EC2 管理 AWS SDK for PHP 实例 - 适用于 PHP 的 AWS 开发工具包

AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异&#xff0c;请参阅中国的 AWS 服务入门。本文属于机器翻译版本。若本译文内容与英语原文存在差异&#xff0c;则一律以英文原文为准。使用 Amazon EC2 管理 AWS SDK for PHP 实例以下示例演示如何&…

python图片分类毕业设计成果报告书_毕业设计成果报告书模板.doc

毕业设计成果报告书成 果&#xff1a;姓 名&#xff1a;学 号&#xff1a;专 业&#xff1a;区 队&#xff1a;指导老师&#xff1a;二〇XX年X月目  录TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc432664597" 一、选题背景 PAGEREF _Toc432664597 \h 1HYPE…

常用正则表达式例子

1。^\d$  //匹配非负整数&#xff08;正整数 0&#xff09; 2。^[0-9]*[1-9][0-9]*$  //匹配正整数 3。^((-\d)|(0))$  //匹配非正整数&#xff08;负整数 0&#xff09; 4。^-[0-9]*[1-9][0-9]*$  //匹配负整数 5。^-?\d$    //匹配整数 6。^\d(\.\d)?$  //…

msf生成php,使用msfpayload生成后门(asp,aspx,php,jsp,exe)等

msfpayload与msfencode参数说明执行msfpayload -h查看都有哪些参数执行msfencode -h查看都有哪些参数生成backdoor类型可以生成asp、aspx、php、jsp、war、exe等多种类型,下面介绍的使用方法就不一一测试了.msfpayload生成linux backdoor目标机器运行linux2,本机监听下端口,使用…

概括ADO.NET数据库连接的所有形式(基础)

概括ADO.NET数据库连接的所有形式(基础&#xff09; 可能大家进来会喷笔者&#xff0c;这么基础的知识还放在首页。那么笔者就要问问大家了&#xff0c;你可能熟悉其中部分数据库读取的形式&#xff0c;但是熟悉全部的估计很少&#xff0c;或者你完全忘记了&#xff0c;因为这些…

python 进程池不足_python 进程池pool简单使用

平常会经常用到多进程&#xff0c;可以用进程池pool来进行自动控制进程&#xff0c;下面介绍一下pool的简单使用。需要主动是&#xff0c;在Windows上要想使用进程模块&#xff0c;就必须把有关进程的代码写if __name__ ‘__main__’ :语句的下面&#xff0c;才能正常使用Wind…

php opendir 不能用,PHP opendir() 函数

打开一个目录&#xff0c;读取它的内容&#xff0c;然后关闭&#xff1a;$dir "/images/";// Open a directory, and read its contentsif (is_dir($dir)){if ($dh opendir($dir)){while (($file readdir($dh)) ! false){echo "filename:" . $file . &q…

程序集

程序集 在C#中&#xff0c;我们要使用反射&#xff0c;主要有三个方面&#xff1a; 第一&#xff0c;反射程序集&#xff0c;模块&#xff0c;类的成员以及成员的一些信息&#xff1b; 第二&#xff0c;接下来就是动态调用类的成员方法&#xff1b; 第三个方面就动态产生程序集…

从像素坐标到相机坐标_【视觉知识】机器视觉几何坐标概论

作者&#xff1a;林青春来源&#xff1a;知乎一、机器视觉几何坐标概论机器视觉系统有三大坐标系&#xff0c;分别是&#xff1a;1、世界坐标系&#xff0c;2、摄像机坐标系&#xff0c;3、图像(像素)坐标系。1、世界坐标系世界坐标系(Xw&#xff0c;Yw&#xff0c;Zw)是目标物…

php 对象 数量,php – Symfony2 / Doctrine如何在实体中存储相关对象的数量

我已经设置了一个包含测试对象的包,该对象包含许多testQuestion对象,每个对象都是一个问题和给定的答案(如果没有答案则为0).从树枝上我希望能够从测试对象中获取信息,说明有多少问题以及已经回答了多少问题.我创建了一个查询来将其从数据库中拉出来,在测试实体中我创建了2个新…

GNU make manual 翻译( 一百六十)

继续翻译 The only restriction on this sort of use of nested variablereferences is that they cannot specify part of the name of a functionto be called. This is because the test for a recognized function nameis done before the expansion of nested references.…

vb如何嵌套chrome_译丨如何为开源软件做出贡献

原文&#xff1a;How to Contribute to Open Source Software作者&#xff1a;Matt Eland译者&#xff1a;博轩为保证文章的可读性&#xff0c;本文采用意译&#xff0c;转载请保留原文链接前段时间参加了2020年1月11日Node party线下分享&#xff0c;justjavac 大佬分享的主题…

反转一个单链表,分别以迭代和递归的形式来实现

迭代法&#xff1a; 1 // 反转单链表.cpp : 定义控制台应用程序的入口点。2 3 #include "stdafx.h"4 #include <stdlib.h>5 6 typedef struct node7 {8 int data;9 struct node *next; 10 }linknode,*linklist; 11 12 linknode *reverse(linknode *he…

codesys中打开linux端的串口_CODESYS版本3.5 SP14 Patch 3发布

此版本有以下内容更新主要功能概述&#xff1a;CODESYS Engineering改进了智能输入辅助、监视列表、监视、 CPU负载、编译调试等;新的数据类型&#xff1a;LREAL或REAL中的__VECTOR [3];用于同步任务特别是多核架构的的原子操作符;一般改进&#xff1a;在源代码中的设备树、全局…