我是靠谱客的博主 平常鸡翅,最近开发中收集的这篇文章主要介绍python使用HTMLParser和BeautifulSoup解析网页,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

HTMLParser是python自带的网页解析库,使用也很简单,主要需要继承基类HTMLParser,然后

重载handle_starttag、handle_data、handle_endtag三个函数即可。

下面给出一个抽取网页链接的示例

#!/usr/bin/env python
#coding=utf-8
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.links = []
def handle_starttag(self,tag,attrs):
#print attrs attrs is lists of tuples.
if tag == 'a':
if len(attrs) == 0:
pass
else:
for (variable,value) in attrs:
if variable == "href":
self.links.append(value)
if __name__ == "__main__":
html_code = """
<a href="www.google.com"> google.com</a>
<A Href="www.pythonclub.org"> PythonClub </a>
<A HREF = "www.sina.com.cn"> Sina </a>
"""
hp = MyHTMLParser()
hp.feed(html_code)
hp.close()
print(hp.links)

===========================================================================

BeautifulSoup是第三方库,不过功能更强大,代码量更少。文档请参考http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html

同样抽取网页链接代码示例

#!/usr/bin/env python
#coding=utf-8
from bs4 import BeautifulSoup
import urllib2
def downloadpage(url):
fp = urllib2.urlopen(url)
data = fp.read()
fp.close()
return data
def parsehtml(data):
soup = BeautifulSoup(data)
for x in soup.findAll('a'):
print x.attrs['href']
if __name__ == "__main__":
#parsehtml(downloadpage("http://www.baidu.com") )
parsehtml("""
<a href="www.google.com"> google.com</a>
<A Href="www.pythonclub.org"> PythonClub </a>
<A HREF = "www.sina.com.cn"> Sina </a>
""")



最后

以上就是平常鸡翅为你收集整理的python使用HTMLParser和BeautifulSoup解析网页的全部内容,希望文章能够帮你解决python使用HTMLParser和BeautifulSoup解析网页所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部