吉吉于

Python Html解析器:Beautiful Soup

做一个小东西用到了Beautiful Soup,一个Python的html解析器,功能很强大,记录一下。

官网:http://www.crummy.com/software/BeautifulSoup/

安装:python setup.py install

sh-3.2# python setup.py install
running install
running build
running build_py
creating build
creating build/lib
copying BeautifulSoup.py -> build/lib
copying BeautifulSoupTests.py -> build/lib
running install_lib
copying build/lib/BeautifulSoup.py -> /Library/Python/2.7/site-packages
copying build/lib/BeautifulSoupTests.py -> /Library/Python/2.7/site-packages
byte-compiling /Library/Python/2.7/site-packages/BeautifulSoup.py to BeautifulSoup.pyc
byte-compiling /Library/Python/2.7/site-packages/BeautifulSoupTests.py to BeautifulSoupTests.pyc
running install_egg_info
Writing /Library/Python/2.7/site-packages/BeautifulSoup-3.2.1-py2.7.egg-info

引入Beautiful Soup:

一般来说下面三句选择一句合适的即可

from BeautifulSoup import BeautifulSoup     # For processing HTML

from BeautifulSoup import BeautifulStoneSoup     # For processing XML

import BeautifulSoup     # To get everything

使用

import urllib2
from BeautifulSoup import BeautifulSoup
c = urllib2.urlopen('http://lazynight.me')
soup = BeautifulSoup(c.read())
links = soup('a')

 

会生成如下数据:

[夜阑, 音乐, 代码, 作品, 技术杂谈, 安全, 设计模式, 数据挖掘, 算法, ACM, 杂记, 开发文档, 广告合作, 留言, 读者墙, 友情链接, 文章存档, 工具箱, 关注Githubgithub.com/Flowerowl, 关注新浪微博weibo.com/lazynightz, 订阅夜阑feed.feedsky.com/Lazynight, 加入Last.fm加入Last.fm, 机器学习与数据挖掘机器学习与数据挖掘, 使用MovieLens数据集使用MovieLens数据集, 基于物品的过滤基于物品的过滤, 构建一个基于del.icio.us的链接推荐系统构建一个基于del.icio.us的链接推荐系统, 基于用户的协作型过滤推荐系统基于用户的协作型过滤推荐系统, 欧几里德距离和皮尔逊相关系数欧几里德距离和皮尔逊相关系数, 嵌入式入门NO.1\-----焊接嵌入式入门NO.1—–焊接, Bootstrap 小试:不喜欢折腾界面的程序员的福音Bootstrap 小试:不喜欢折腾界面的程序员的福音, 使用shc加密shell使用shc加密shell, 关于CommonJS关于CommonJS, PhantomJS学习笔记(3):遍历文件系统PhantomJS学习笔记(3):遍历文件系统, 修改Mac系统截图文件类型,保存路径修改Mac系统截图文件类型,保存路径, 这是一篇MarsEdit写的文章这是一篇MarsEdit写的文章, PhantomJS 学习笔记(2):生成网页截图PhantomJS 学习笔记(2):生成网页截图, 标签云, Html5, CSS3, Javascript, jQuery, Three.js, Ajax, C#, Object-c, Java, C++, PHP, Python, Mysql, MongoDB, SqlServer, Wordpress, Typecho, Django, Discuz, 注入, 漏洞, 渗透, 工具, 资讯, 嵌入式, Last.fm, 落网, 豆瓣电台, Jing, 巴士电台, 邻居的耳朵, 加入Last.fm, 加入Last.fm, 0人评论, 机器学习与数据挖掘, 机器学习与数据挖掘, 0人评论, 使用MovieLens数据集, 使用MovieLens数据集, 0人评论, 基于物品的过滤, 基于物品的过滤, 0人评论, 构建一个基于del.icio.us的链接推荐系统, 构建一个基于del.icio.us的链接推荐系统, 0人评论, 基于用户的协作型过滤推荐系统, 基于用户的协作型过滤推荐系统, 0人评论, 欧几里德距离和皮尔逊相关系数, 欧几里德距离和皮尔逊相关系数, 3人评论, 嵌入式入门NO.1\-----焊接, 嵌入式入门NO.1—–焊接, 4人评论, Bootstrap 小试:不喜欢折腾界面的程序员的福音, Bootstrap 小试:不喜欢折腾界面的程序员的福音, 4人评论, 使用shc加密shell, 使用shc加密shell, 1人评论, 关于CommonJS, 关于CommonJS, 0人评论, PhantomJS学习笔记(3):遍历文件系统, PhantomJS学习笔记(3):遍历文件系统, 0人评论, 修改Mac系统截图文件类型,保存路径, 修改Mac系统截图文件类型,保存路径, 0人评论, 这是一篇MarsEdit写的文章, 这是一篇MarsEdit写的文章, 1人评论, PhantomJS 学习笔记(2):生成网页截图, PhantomJS 学习笔记(2):生成网页截图, 0人评论, 2, 3, 4, 5, 22, 下一页, 音乐收藏之摇滚系列!, 音乐收藏之摇滚系列!, 37人评论, 加入Last.fm, 机器学习与数据挖掘, 使用MovieLens数据集, 基于物品的过滤, 构建一个基于del.icio.us的链接推荐系统, 基于用户的协作型过滤推荐系统, 欧几里德距离和皮尔逊相关系数, 嵌入式入门NO.1—–焊接, Bootstrap 小试:不喜欢折腾界面的程序员的福音, 使用shc加密shell, 我把印象里几首英伦摇滚写在这里, 我把印象里几首英伦摇滚写在这里, 22人评论, >Likecer:  这都用的上……你学《算法导论》的吗?最近正在琢磨这些东东,大脑明显营养跟不上, >兇弚情義:原来是这HB写的、我还以为你开始弄嵌入式了, >Likecer:多说是不是从WP后台回复,在这无法显示?我也没有收到邮件~, >天马行空: , >夜阑:哈哈,你已经折腾过啦?看来我out啦~, >Likecer:啊呀帅呆呆啊我当年用它美化wiki以为他很麻烦的, >夜阑:haha , 那加油吧~~, >阿疯:最近忙着泡妞,忙着给自己找个终身伴侣。, 分形地形算法, 分形地形算法, 1人评论, 裂帛女装, 欧莎品牌服饰旗舰店, 茵曼旗舰店, 威戈, 夜阑, 站点地图, 投放广告, ]

其他用法请参考官方文档

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#

转载请注明:于哲的博客 » Python Html解析器:Beautiful Soup