博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python HTMLparser
阅读量:5912 次
发布时间:2019-06-19

本文共 1420 字,大约阅读时间需要 4 分钟。

1.概述

 

1 如果我们要编写一个搜索引擎,第一步是用爬虫把目标网站的页面抓下来, 2 第二步就是解析该HTML页面,看看里面的内容到底是新闻、图片还是视频。 3  4 假设第一步已经完成了,第二步应该如何解析HTML呢? 5  6 HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,所以不能用标准的DOM或SAX来解析HTML。 7 也可以用 re正则表达式 8 scrapy 框架下的css选择器或者xpath 9 10 仁者见仁智者见智

 

2.HTMLparser

1 # 使用时需要定义一个从类HTMLParser继承的类,重定义函数: 2 # handle_starttag( tag, attrs) 3 #handle_startendtag( tag, attrs) 4 # handle_endtag( tag) 5  6 # 来实现自己需要的功能。 7  8 # tag是的html标签,attrs是 (属性,值)元组(tuple)的列表(list)。 9 # HTMLParser自动将tag和attrs都转为小写10 11 12 from html.parser import HTMLParser  13 class MyHTMLParser(HTMLParser):   14     def __init__(self):   15         HTMLParser.__init__(self)   16         self.links = []   17     def handle_starttag(self, tag, attrs):   18         #print "Encountered the beginning of a %s tag" % tag   19         if tag == "a":   20             if len(attrs) == 0:   21                 pass   22             else:   23                 for (variable, value) in attrs:   24                     if variable == "href":   25                         self.links.append(value)   26                      27 if __name__ == "__main__":   28     html_code = """  google.com  PythonClub   Sina  """   29     hp = MyHTMLParser()   30     hp.feed(html_code)   31     hp.close()   32     print(hp.links)  33 # 运行结果34 # ['www.google.com', 'www.pythonclub.org', 'www.sina.com.cn']

3.总结

 1 个人观点 2 如果是做搜索引擎建议还是用scrapy框架  

 

 参照:

转载于:https://www.cnblogs.com/jum-bolg/p/11094743.html

你可能感兴趣的文章
CSS中的!important属性用法
查看>>
java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
查看>>
Linux常用命令
查看>>
Javascript:this用法
查看>>
PHP 7.2 新功能介绍
查看>>
洛谷——P1305 新二叉树(新建二叉树以及遍历)
查看>>
Makefile 使用总结
查看>>
centos7.0搭建svn服务器
查看>>
JS多个对象添加到一个对象中
查看>>
九度 1376 最近零子序列
查看>>
Python深入类和对象
查看>>
推荐系统(1)--splitting approaches for context-aware recommendation
查看>>
PropertySource和ConfigurationProperties
查看>>
Java中的Enum(枚举)用法介绍
查看>>
common Lisp学习笔记(十二)
查看>>
SQL 结合CASE WHEN 实现二维统计
查看>>
android学习笔记之多线程(二)
查看>>
微信公众号 文章的爬虫系统
查看>>
Java内部类详解(转)
查看>>
Java IO的RandomAccessFile的使用(转)
查看>>