文档章节

python中用beautifulSoup+urlib2 安装、抓取和解析网页,以及解析shtml

不容置喙
 不容置喙
发布于 2014/10/05 22:49
字数 571
阅读 4K
收藏 10

安装 Beautiful Soup

如果你用的是新版的Debain或ubuntu,那么可以通过系统的软件包管理来安装:

$ apt-get install Python-bs4

Beautiful Soup 4 通过PyPi发布,所以如果你无法使用系统包管理安装,那么也可以通过 easy_install 或 pip 来安装.包的名字是beautifulsoup4 ,这个包兼容Python2和Python3.

$ easy_install beautifulsoup4

$ pip install beautifulsoup4

(在PyPi中还有一个名字是 BeautifulSoup 的包,但那可能不是你想要的,那是 Beautiful Soup3 的发布版本,因为很多项目还在使用BS3, 所以 BeautifulSoup 包依然有效.但是如果你在编写新项目,那么你应该安装的 beautifulsoup4 )

如果你没有安装 easy_install 或 pip ,那你也可以 下载BS4的源码 ,然后通过setup.py来安装.

$ Python setup.py install

如果上述安装方法都行不通,Beautiful Soup的发布协议允许你将BS4的代码打包在你的项目中,这样无须安装即可使用.

作者在Python2.7和Python3.2的版本下开发Beautiful Soup, 理论上Beautiful Soup应该在所有当前的Python版本中正常工作

安装解析器

Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml .根据操作系统不同,可以选择下列方法来安装lxml:

$ apt-get install Python-lxml

$ easy_install lxml

$ pip install lxml

另一个可供选择的解析器是纯Python实现的 html5lib , html5lib的解析方式与浏览器相同,可以选择下列方法来安装html5lib:

$ apt-get install Python-html5lib

$ easy_install html5lib

$ pip install html5lib

解析一般的网页(html),直接:

from bs4 import  BeautifulSoup,BeautifulStoneSoup

import urllib2

import html5lib

url_header = "xxxxxx"

Webpage = urllib2.urlopen(url_header).read()

soup = BeautifulSoup(webpage)

 print soup.prettify( )


但是在解析shtml的网页的时候,beautifulsoup模块支持的解释器有lxml,html5lib和HTMLparse三种,只有html5lib支持解析shtml,所以在生成beautifulsoup对象的时候,要加上一个参数:soup = BeautifulSoup(Webpage,"html5lib"),不然的话,当解析shtml页面的时候,<body> </body>标签里面的内容是无法解析的。

更多详情请参考:BeautifulSoup 4.2.0官方档http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html


© 著作权归作者所有

不容置喙
粉丝 14
博文 12
码字总数 1541
作品 0
南京
私信 提问
加载中

评论(0)

Python爬虫原理详解 简单易懂

什么是Python爬虫?Python爬虫原理是什么?Python爬虫代码是如何实现的?码笔记分享Python介绍及爬虫原理详解: 什么是Python爬虫? 我们可以把互联网看成是各种信息的站点及网络设备在一起组...

张扯淡
2019/07/26
0
0
Python开发简单爬虫--学习笔记

一、概述 目标 掌握开发轻量级爬虫 内容 爬虫简介 简单爬虫架构 URL管理器 网页下载器(urllib2) 网页解析器(BeautifulSoup) 完整实例:爬取百度百科雷军词条相关的1000个页面数据 tips: 轻量...

老男孩coder
2018/06/17
0
0
Python爬虫入门 | 2 爬取豆瓣电影信息

  这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今...

Web前端社区
2018/07/25
0
0
python爬取校园新闻实训报告

Python实训报告 实训内容: 编写一个新闻资讯抓取程序,抓取页面新闻资讯数据,并保存在本地文本文件中,每条新闻保存一个记事本,记事本动态生成以新闻标题命名。理工学院新闻通知页面:htt...

短发--短发
04/01
0
0
PyPy 简介

概述 Python 编程语言于 1994 年问世,自新千年以来,这种语言获得了极大的成功。衡量一种语言成功与否的标准之一就是其实现的数量。最知名也是最常用的 Python 实现称为 CPython。此外还有其...

IBMdW
2012/04/09
4.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

还记得概率课本中的二项分布吗?在我们的网络判障中发挥了大作用!

本文作者:AIOps智能运维 在之前的系列文章《百度网络监控实战:NetRadar横空出世》中,我们介绍了百度内网质量监测平台NetRadar的原理和架构,其中,判障算法是内网监测系统的重要一环,今天...

百度开发者中心
2019/09/12
13
0
OSChina 周三乱弹 —— 小姐姐的领带有点带歪了,请帮忙正一下

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《アイタクテ -voice & piano-》- 和紗 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
53分钟前
21
0
对象名称前的单下划线和双下划线是什么意思?

问题: Can someone please explain the exact meaning of having leading underscores before an object's name in Python? 有人可以解释一下在Python中对象名称前加下划线的确切含义吗? ......

技术盛宴
今天
29
0
Redis命令行参数大全

[TOC] Redis命令行参数大全 CLI工具的类型 可执行文件 作用 redis-server Redis Srver相关 redis-cli Redis命令行工具 redis-benchmark 基准测试工具 redis-check-aof AOF持久化文件检测工具...

我爱吃炒鸡
今天
20
0
RHEL8和CentOS8怎么重启网络

RHEL8和CentOS8怎么重启网络 本文主要讲解如何重启RHEL 8或者CentOS 8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错,当我们安装好RHEL 8或者 CentOS 8,重启启动网络时,会出现以下...

独钓渔
今天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部