概述
BeautifulSoup是python html页面分析和xml页面分析的一个很好的工具!
最新版可以在这里下载到:http://www.crummy.com/software/BeautifulSoup/ 不过好像不支持python3.0以上的版本,最新的支持到python2.7.2。
OK废话不说,直接进入主题:
BeautifulSoup安装:
下载好BeautifulSoup后(一般是压缩包),解压压缩包,进入解压后的文件夹,里面会有个setup.py文件,然后敲以下命令:
Linux下:
#python setup.py install
windows下要配置好python环境变量,也就是把pyhton的安装目录写到path里,然后再命令行下敲命令:
path of your BeautifulSoup folder>python setup.py install
安装完成后,可以在python的安装目录下的 Lib/site-packages下看到几个BeautifulSoup开头的文件。
我们也可以通过python命令行敲以下代码确认是否安装成功:
>>> from BeautifulSoup import BeautifulSoup
如果没有出错提示,说明安装成功!
测试程序:
OK,安装好BeautifulSoup后,可以写个测试程序试试:
我是在命令行模式下敲代码的:
.
>>> from BeautifulSoup import BeautifulSoup
>>> import urllib
>>> html = urllib.urlopen(r'http://www.cnbeta.com/articles/165636.htm')
>>> text = html.read()
>>> soup = BeautifulSoup(text)
>>> content_html = soup.find('div',{"id":"news_content"})
>>> content_html
输出结果:
<div id="news_content"><a href="/topics/138.htm"><img src="http://img.cnbeta.com/topics/communication.png" alt="通信技术" name="sign" align="right" id="sign" οnlοad="fixPNG(this)" /></a>
<p><b>感谢<a href="http://www.dzmeishi.com" target="_blank">大众美食网</a>的投递</b><br />
新闻来源:北京晚报<br />
<span style="font-weight:bold;">从每月不到10元可以无限浏览国内网站,到如今限定流量上网。清华大学近日启动的计费上网方式引发学生争议。学生认为新的计费方式增加了做科研的成本。</span>记者了解到,清华…………
抓取成功!
代码解析:
1,2行代码导入需要用到的模块,我这里是直接抓取网络上的页面,因此要用到urllib这个模块。
3,4行代码,读取指定url文件。我这里读取的是CNBeta的一条新闻:http://www.cnbeta.com/articles/165636.htm'读取其中的内容部分(id为news_content的div,这个需要打开网页的源码分析)。BeautifulSoup的find()方法用于查找符合条件的内容,只返回第一次找到的内容,这里的条件是 div 标签,id为news_content,条件也可以用正则表达式表示。除了find()方法外,还有findAll()方法,findAll()返回的是页面中全部符合条件的内容。
第5行输出结果。
去掉多余的标签:
我们看到,输出中有很多标签是我们不想要的,我们其实只想要正文的内容,也就是news_content这个div中几个p便签里的内容。OK,我们再限制下条件。
>>>content_html.findAll('p')
我们可以看到输出结果正是我们想要的:
[<p><b>感谢<a href="http://www.dzmeishi.com" target="_blank">大众美食网</a>的投递</b><br />
新闻来源:北京晚报<br />
<span style="font-weight:bold;">从每月不到10元可以无限浏览国内网站,到如今限定流量上网。清华大学近日启动的计费上网方式引发学生争议。学生认为新的计费方式增加了做科研的成本。</span>记者了解到,清华大学是我国最早接入国际互联网的高校之一。调整前,清华对本科学生上网执行的资费标准是包月不限访问国内网站流量,每月6.5元,访问国外网站另行计费。</p>, <p>12月6日,清华校园网公布《关于校园网资费标准的公告》,今后在校生上网流量在20G以下免费;流量超过20G,按超出比例收费1至5元不等。新计费方式已于本月12日开始试行,并将于明年1月1日正式执行。<br />
<br />
“这么收费,一个月动辄就要掏上百元。”清华一位“资深网虫”学生说。一些学生表示,“不同专业,甚至在学习的不同阶段,对网络流量的需求是不一样的。”一位计算机专业本科生说,他们有时需要下载一些测试软件,很花费流量,“学校不该增加科研的成本。”<br />
<br />
记者了解到,目前北京大学和北京外国语大学采取包月上网,学生每月分别交10元和30元,不限流量访问国内网站;中央民族大学采取计时收费,每小时0.3元。</p>]
小结:
BeautifulSoup使用起来非常方便,支持css条件抓取(要抓取有class属性的标签时,只能用css条件,因为class是python的保留字)。BeautifulSoup更多方法的使用请看手册:
http://www.crummy.com/software/BeautifulSoup/documentation.zh.html(中文)
http://www.crummy.com/software/BeautifulSoup/documentation.html(英文)
最后
以上就是想人陪荷花为你收集整理的Python_BeautifulSoup 抓取网页内容入门的全部内容,希望文章能够帮你解决Python_BeautifulSoup 抓取网页内容入门所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复