• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python网页解析利器BeautifulSoup安装使用介绍

Python网页解析利器BeautifulSoup安装使用介绍

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python爬虫利器,python beautifulsoup,python beautiful,beautiful4包python,python soup等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

python解析网页,无出BeautifulSoup左右,此是序言

安装

BeautifulSoup4以后的安装需要用eazy_install,如果不需要最新的功能,安装版本3就够了,千万别以为老版本就怎么怎么不好,想当初也是千万人在用的啊。安装很简单
$ wget "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz" 
$ tar zxvf BeautifulSoup-3.2.1.tar.gz 
</div>
然后把里面的BeautifulSoup.py这个文件放到你python安装目录下的site-packages目录下

site-packages是存放Python第三方包的地方,至于这个目录在什么地方呢,每个系统不一样,可以用下面的方式找一下,基本上都能找到
$ sudo find / -name "site-packages" -maxdepth 5 -type d 
$ find ~ -name "site-packages" -maxdepth 5 
</div>
当然如果没有root权限就查找当前用户的根目录
$ find ~ -name "site-packages" -maxdepth 5 -type d 
</div>
如果你用的是Mac,哈哈,你有福了,我可以直接告诉你,Mac的这个目录在/Library/Python/下,这个下面可能会有多个版本的目录,没关系,放在最新的一个版本下的site-packages就行了。使用之前先import一下
from BeautifulSoup import BeautifulSoup 
</div>

使用

在使用之前我们先来看一个实例
现在给你这样一个页面
http://movie.douban.com/tag/%E5%96%9C%E5%89%A7
</div>
它是豆瓣电影分类下的喜剧电影,如果让你找出里面评分最高的100部,该怎么做呢
好了,我先晒一下我做的,鉴于本人在CSS方面处于小白阶段以及天生没有美术细菌,界面做的也就将就能看下,别吐

接下来我们开始学习BeautifulSoup的一些基本方法,做出上面那个页面就易如反掌了

鉴于豆瓣那个页面比较复杂,我们先以一个简单样例来举例,假设我们处理如下的网页代码
<html> 
<head><title>Page title</title></head> 
<body> 
    <p id="firstpara" align="center"> 
    This is paragraph 
        <b> 
        one 
        </b> 
        . 
    </p> 
    <p id="secondpara" align="blah"> 
    This is paragraph 
        <b> 
        two 
        </b> 
        . 
    </p> 
</body> 
</html> 
</div>
你没看错,这就是官方文档里的一个样例,如果你有耐心,看官方文档就足够了,后面的你都不用看
http://www.leeon.me/upload/other/beautifulsoup-documentation-zh.html

初始化

首先将上面的HTML代码赋给一个变量html如下,为了方便大家复制这里贴的是不带回车的,上面带回车的代码可以让大家看清楚HTML结构
html = '<html><head><title>Page title</title></head><body><p id="firstpara" align="center">This is paragraph<b>one</b>.</p><p id="secondpara" align="blah">This is paragraph<b>two</b>.</p></body></html>' 
</div>
初始化如下:
soup = BeautifulSoup(html) 
</div>
我们知道HTML代码可以看成一棵树,这个操作等于是把HTML代码解析成一种树型的数据结构并存储在soup中,注意这个数据结构的根节点不是<html>,而是soup,其中html标签是soup的唯一子节点,不信你试试下面的操作
print soup 
print soup.contents[0] 
print soup.contents[1] 
</div>
前两个输出结果是一致的,就是整个html文档,第三条输出报错IndexError: list index out of range

查找节点

查找节点有两种反回形式,一种是返回单个节点,一种是返回节点list,对应的查找函数分别为find和findAll

单个节点

1.根据节点名
## 查找head节点 
print soup.find('head') ## 输出为<head><title>Page title</title></head> 
## or 
## head = soup.head 
</div>

这种方式查找到的是待查找节点最近的节点,比如这里待查找节点是soup,这里找到的是离soup最近的一个head(如果有多个的话)

2.根据属性
## 查找id属性为firstpara的节点 
print soup.find(attrs={'id':'firstpara'})   
## 输出为<p id="firstpara" align="center">This is paragraph<b>one</b>.</p> 
## 也可节点名和属性进行组合 
print soup.find('p', attrs={'id':'firstpara'})  ## 输出同上
</div>

3.根据节点关系

节点关系无非就是兄弟节点,父子节点这样的
代码如下:</div>

您可能想查找下面的文章:

  • Python网页解析利器BeautifulSoup安装使用介绍
  • Python网页解析利器BeautifulSoup安装使用介绍

相关文章

  • Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
  • Python的Bottle框架的一些使用技巧介绍
  • 使用Python读写文本文件及编写简单的文本编辑器
  • python使用rabbitmq实现网络爬虫示例
  • 基于python实现微信模板消息
  • 在Django的模型中添加自定义方法的示例
  • tensorflow如何继续训练之前保存的模型实例
  • Python查看多台服务器进程的脚本分享
  • Python解析excel文件存入sqlite数据库的方法
  • Python科学计算之NumPy入门教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 简单介绍Python中的decode()方法的使用
    • Python中第三方库Requests库的高级用法详解
    • python实现k均值算法示例(k均值聚类算法)
    • python实现ipsec开权限实例
    • 在Django的通用视图中处理Context的方法
    • 使用Python的web.py框架实现类似Django的ORM查询的教程
    • Python中super关键字用法实例分析
    • Python脚本处理空格的方法
    • python实现将英文单词表示的数字转换成阿拉伯数字的方法
    • 利用python实现数据分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有