主要尝试了基于python第三方库Beautiful Soup来做网站新闻的爬取,Beautiful Soup提供了一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能,自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。
Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
安装命令:pip install beautifulsoup4
Beautiful Soup除了支持Python标准库中的HTML解析器,还支持一些第三方的解析器,各个解释器比较如下:
解析器 | 调用方法 | 优缺点 |
---|---|---|
Python标准库 | BeautifulSoup(html, “html.parser”) | 内置标准库,执行速度适中,文档容错能力强;Python 2.7.3/3.2.2前的版本中文档容错能力差 |
lxml HTML 解析器 | BeautifulSoup(html, “lxml”) | 速度快,文档容错能力强;需要安装第三方库 |
lxml XML 解析器 | BeautifulSoup(markup, “xml”) | 速度快,唯一支持XML的解析器 |
html5lib | BeautifulSoup(html, “html5lib”) | 最好的容错性,以浏览器的方式解析文档,生成HTML5格式的文档;速度慢 |
文本爬取示例
爬取标题及正文链接
|
|
通过上述函数可以爬取当前页面所有的新闻标题和正文链接,如url为http://www.news.cn/fashion/
时,通过BeautifulSoup解析出来的soup如下:
|
|
通过调用soup的查找函数查找标签,输出标题和对应链接如下:
|
|
爬取新闻正文
|
|
输出的soup如下:
|
|
依然是通过soup的查找函数查找文章的标签,输出正文:
|
|