Python 实战(1) 爬虫的理论
本文的Python知识基于 Python3
bs4库
我们安装 bs4 第三方库
注意, 安装Python包需要管理员权限
命令行安装: pip install bs4
官方文档:
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
解析器
bs4可以使用很多解析器, 如下:
lxml
- 安装命令
pip install lxml
xml
- 包括在 lxml 库中
Python内置html解析器
- 无需安装, 自带
html5lib
- 安装命令
pip install html5lib
| 解析器 | 使用方法 | 优势 | 劣势 |
|---|---|---|---|
| Python标准库 | <tt class="docutils literal"><span class="pre">BeautifulSoup(markup,</span> <span class="pre">"html.parser")</span></tt> | <ul class="first last simple"> <li>Python的内置标准库</li> <li>执行速度适中</li> <li>文档容错能力强</li> </ul> | <ul class="first last simple"> <li>Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差</li> </ul> |
| lxml HTML 解析器 | <tt class="docutils literal"><span class="pre">BeautifulSoup(markup,</span> <span class="pre">"lxml")</span></tt> | <ul class="first last simple"> <li>速度快</li> <li>文档容错能力强</li> </ul> | <ul class="first last simple"> <li>需要安装C语言库</li> </ul> |
| lxml XML 解析器 | <p class="first"><tt class="docutils literal"><span class="pre">BeautifulSoup(markup,</span> <span class="pre">["lxml",</span> <span class="pre">"xml"])</span></tt></p> <p class="last"><tt class="docutils literal"><span class="pre">BeautifulSoup(markup,</span> <span class="pre">"xml")</span></tt></p> | <ul class="first last simple"> <li>速度快</li> <li>唯一支持XML的解析器</li> </ul> | <ul class="first last simple"> <li>需要安装C语言库</li> </ul> |
| html5lib | <tt class="docutils literal"><span class="pre">BeautifulSoup(markup,</span> <span class="pre">"html5lib")</span></tt> | <ul class="first last simple"> <li>最好的容错性</li> <li>以浏览器的方式解析文档</li> <li>生成HTML5格式的文档</li> </ul> | <ul class="first last simple"> <li>速度慢</li> <li>不依赖外部扩展</li> </ul> |
requests库
- requests库可以进行网页源码的获取
- 安装:
pip install requests 官方文档
- http://docs.python-requests.org/zh_CN/latest/
- 请参考其中的
用户指南导航
text
- 使用text可以获得网页的源代码
encoding
- 使用 encoding 可以设置源代码的字符集, 防止中文乱码
- 更多请阅读文档
初步使用
>>> import requests
>>> from bs4 import BeautifulSoup
>>> response = requests.get('http://www.hxhlb.org')
>>> response.encoding = 'utf-8'
>>> soup = BeautifulSoup(response.text, 'html.parser')
>>> print(soup.title)
<title>花心胡萝卜工作室门户网站</title>
>>> 未完待续...
如有错误,请提出指正!谢谢.
本文由 花心胡萝卜 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 2017-07-26 at 06:02 am