Python HTMLParser模块解析html获取url实例
HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然后重新定义这几个以handler_开头的函数即可。这几个函数包括:
handle_startendtag 处理开始标签和结束标签
handle_starttag 处理开始标签,比如<xx>
handle_endtag 处理结束标签,比如</xx>
handle_charref 处理特殊字符串,就是以&#开头的,一般是内码表示的字符
handle_entityref 处理一些特殊字符,以&开头的,比如
handle_data 处理数据,就是<xx>data</xx>中间的那些数据
handle_comment 处理注释
handle_decl 处理<!开头的,比如<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
handle_pi 处理形如<?instruction>的东西
这里我以从网页中获取到url为例,介绍一下。要想获取到url,肯定是要分析<a>标签,然后取到它的href属性的值。下面是代码:
#-*- encoding: gb2312 -*- import HTMLParser class MyParser(HTMLParser.HTMLParser): def __init__(self): HTMLParser.HTMLParser.__init__(self) def handle_starttag(self, tag, attrs): # 这里重新定义了处理开始标签的函数 if tag == 'a': # 判断标签<a>的属性 for name,value in attrs: if name == 'href': print value if __name__ == '__main__': a = '<html><head><title>test</title><body><a href="http://www.163.com">链接到163</a></body></html>' my = MyParser() # 传入要分析的数据,是html的。 my.feed(a)
相关推荐
-
在Python中使用HTMLParser解析HTML的教程
如果我们要编写一个搜索引擎,第一步是用爬虫把目标网站的页面抓下来,第二步就是解析该HTML页面,看看里面的内容到底是新闻.图片还是视频. 假设第一步已经完成了,第二步应该如何解析HTML呢? HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,所以不能用标准的DOM或SAX来解析HTML. 好在Python提供了HTMLParser来非常方便地解析HTML,只需简单几行代码: from HTMLParser import HTMLParser from htmlentitydef
-
Python中使用HTMLParser解析html实例
前几天遇到一个问题,需要把网页中的一部分内容挑出来,于是找到了urllib和HTMLParser两个库.urllib可以将网页爬下来,然后交由HTMLParser解析,初次使用这个库,在查官方文档时也遇到了一些问题,在这里写下来与大家分享. 一个例子 复制代码 代码如下: from HTMLParser import HTMLParser class MyHTMLParser(HTMLParser): def handle_starttag(self, tag, attrs): pr
-
Python 网页解析HTMLParse的实例详解
Python 网页解析HTMLParse的实例详解 使用python将网页抓取下来之后,下一步我们就应该解析网页,提取我们所需要的内容了,在python里提供了一个简单的解析模块HTMLParser类,使用起来也是比较简单的,解析语法没有用到XPath类似的简洁模式,但新手用起来还是比较容易的,看下面的例子: 现在一个模拟的html文件: <html> <title id='main' mouse='你好'>我是标题</title><body>我是内容<
-
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
一.利用HTMLParser进行网页解析 具体HTMLParser官方文档可参考http://docs.python.org/library/htmlparser.html#HTMLParser.HTMLParser 1.从一个简单的解析例子开始 例1: test1.html文件内容如下: 复制代码 代码如下: <html> <head> <title> XHTML 与 HTML 4.01 标准没有太多的不同</title> </head> &l
-
Python HTMLParser模块解析html获取url实例
HTMLParser是python用来解析html的模块.它可以分析出html里面的标签.数据等等,是一种处理html的简便途径.HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理.它主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数.当我们使用时,就从HTMLParser派生出新的类,然后重新定义这几个以handler_开头的函数即可.这几个函数包括: handle_
-
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
本文实例讲述了Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能.分享给大家供大家参考,具体如下: 因为需要使用叶子节点的路径来作为特征,但是原始的lxml模块解析之后得到的却是整个页面中所有节点的xpath路径,不是我们真正想要的形式,所以就要进行相关的处理才行了,差了很多网上的博客和文档也没有找到一个是关于输出html中全部叶子节点的API接口或者函数,也可能是自己没有那份耐心,没有找到合适的资源,只好放弃了寻找,但是这并不说明没有其他的方法了,在对页面全部节点
-
python XlsxWriter模块创建aexcel表格的实例讲解
安装使用pip install XlsxWriter来安装,Xlsxwriter用来创建excel表格,功能很强大,下面具体介绍: 1.简单使用excel的实例: #coding:utf-8 import xlsxwriter workbook = xlsxwriter.Workbook('d:\\suq\\test\\demo1.xlsx') #创建一个excel文件 worksheet = workbook.add_worksheet('TEST') #在文件中创建一个名为TEST的shee
-
Python pkg_resources模块动态加载插件实例分析
使用标准库importlib的import_module()函数.django的import_string(),它们都可以动态加载指定的 Python 模块. 举两个动态加载例子: 举例一: 在你项目中有个test函数,位于your_project/demo/test.py中,那么你可以使用import_module来动态加载并调用这个函数而不需要在使用的地方通过import导入. module_path = 'your_project/demo' module = import_module(
-
Python实现通过解析域名获取ip地址的方法分析
本文实例讲述了Python实现通过解析域名获取ip地址的方法.分享给大家供大家参考,具体如下: 从网上查找的一些资料,特此做个笔记 案例1: def getIP(domain): myaddr = socket.getaddrinfo(domain, 'http') print(myaddr[0][4][0]) 执行函数 getIP("www.google.com") 案例2: def get_ip_list(domain): # 获取域名解析出的IP列表 ip_list = [] t
-
对Python random模块打乱数组顺序的实例讲解
在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample()函数实现. sample(population, k) method of random.Random instance Chooses k unique random elements from a population sequence or set. 下面的代码实现的是打乱iris数据,i
-
python argparse模块通过后台传递参数实例
我就废话不多说了,大家还是直接看代码吧! cmd.py # -*- coding: utf-8 -*- from PySide import QtGui, QtCore import os,sys import tory import argparse parser = argparse.ArgumentParser() parser.add_argument("-v", "--verbosity", help="increase output verbo
-
Python subprocess模块功能与常见用法实例详解
本文实例讲述了Python subprocess模块功能与常见用法.分享给大家供大家参考,具体如下: 一.简介 subprocess最早在2.4版本引入.用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值. subprocess用来替换多个旧模块和函数: os.system os.spawn* os.popen* popen2.* commands.* 运行python的时候,我们都是在创建并运行一个进程,linux中一个进程可以fork一个子进程,并让这个子进程ex
-
Python getopt模块处理命令行选项实例
getopt模块用于抽出命令行选项和参数,也就是sys.argv命令行选项使得程序的参数更加灵活.支持短选项模式和长选项模式例如 python scriptname.py -f 'hello' --directory-prefix=/home -t --format 'a' 'b' 复制代码 代码如下: import getopt, sysshortargs = 'f:t'longargs = ['directory-prefix=', 'format']opts, args = getopt
-
Python MySQLdb模块连接操作mysql数据库实例
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql-python.sourceforge.net/有下载和文档. 由于python的数据库模块有专门的数据库模块的规范,所以,其实不管使用哪种数据库的方法都大同小异的,这里就给出一段示范的代码: #-*- encoding: gb2312 -*- import os, sys, string impo
随机推荐
- CentOS6.9下mysql 5.7.17安装配置方法图文教程
- Php做的端口嗅探器--可以指定网站和端口
- oracle 如何关闭打开归档日志
- 简单的js表单验证函数
- 解决html按钮切换绑定不同函数后点击时执行多次函数问题
- Objective-C编程中语句和变量的一些编写规范建议
- python直接访问私有属性的简单方法
- Windows Server 2012 R2 Hyper-V虚拟化常见异常处理方法总结
- 分享下页面关键字抓取components.arrow.com站点代码
- html5+canvas实现支持触屏的签名插件教程
- JS数组去重(4种方法)
- SQLServer 快速备份的十种方法
- windows 7架设OpenSSH服务器实践
- Vim自定义高亮分组以及一些实用技巧小结
- JNDI简介_动力节点Java学院整理
- 域内禁止上某个网站的方法(wpkg.org)
- 由static_cast和dynamic_cast到C++对象占用内存的全面分析
- 深入浅析 Spring Boot Starter
- java对xml节点属性的增删改查实现方法
- 也谈跨站脚本攻击与防御