博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
莫比乌斯反演初步与实际应用
查看>>
开发人员可以提高效率的chrome插件推荐
查看>>
1.4.运维平台之硬件CMDB
查看>>
性能测试分享:性能测试工具开发的案例分享(下)
查看>>
微信小程序如何像webview一样加载html5网页
查看>>
CentOs6.5系统下MySQL-5.7.19安装
查看>>
ms sql convert的使用细节
查看>>
精通Java设计模式从初见到相爱之命令设计模式(15)
查看>>
linux sar命令详解
查看>>
使用Java8实现自己的个性化搜索引擎
查看>>
通过Gearman实现MySQL到Redis的数据复制
查看>>
eclipse 自动为getter和setter添加注释
查看>>
oracle--数据库
查看>>
kafka 监控之Mx4jLoader
查看>>
XBImageFilters
查看>>
Hadoop之HDFS的常用命令
查看>>
分布式系统架构解决方案之Dubbo(三)--Dubbo管理端 和 Dubbo综合案例
查看>>
The function getUserId must be used with...解决办法
查看>>
Class yii\base\View
查看>>
我的友情链接
查看>>