网络爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。”
安装依赖库
采用easy_install或pip可以直接安装
1.安装MySQL-python
pip/easy_install install MySQL-python
2.安装BeautifulSoup
Beautiful Soup3 的文档,Beautiful Soup 3目前已经停止开发,我们推荐在现在的项目中使用Beautiful Soup 4,移植到BS4
apt-get install Python-bs4 #Debain或ubuntu
pip/easy_install install beautifulsoup4
安装解析器
Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是
lxml .根据操作系统不同,可以选择下列方法来安装lxml:
apt-get install Python-lxml
pip/easy_install install lxml
另一个可供选择的解析器是纯Python实现的 html5lib, html5lib的解析方式与浏览器相同,可以选择下列方法来安装html5lib:
apt-get install Python-html5lib
pip/easy_install install html5lib
下表列出了主要的解析器,以及它们的优缺点:
解析器 | 使用方法 | 优势 | 劣势 |
---|---|---|---|
Python标准库 | BeautifulSoup(markup, “html.parser”) | Python的内置标准库、执行速度适中、文档容错能力强 | Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差 |
lxml HTML 解析器 | BeautifulSoup(markup, “lxml”) | 速度快、文档容错能力强 | 需要安装C语言库 |
lxml XML 解析器 | BeautifulSoup(markup, [“lxml”, “xml”]) BeautifulSoup(markup, “xml”) | 速度快、唯一支持XML的解析器 | 需要安装C语言库 |
html5lib | BeautifulSoup(markup, “html5lib”) | 最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档 | 速度慢、不依赖外部扩展 |
推荐使用lxml作为解析器,因为效率更高.在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib,因为那些Python版本的标准库中内置的HTML解析方法不够稳定.
采用BeautifulSoup爬取示例
1 | #!/usr/bin/python |
参考资料