pyQuery 是 jQuery 的Python实现,如果对Web前端有了解,特别是有用过 jQuery 的,那么 pyQuery 将会是你处理HTML内容的最佳选择。教程基于如下环境:
pyQuery 需要通过 ez_install 安装。
1,下载 ez_install.py 脚本,右键保存即可 https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py。方便安装,放在D盘根目录下。
2,运行 cmd (使用快捷键 Win+r,输入 cmd),执行如下命令:
d:
python ez_setup.py install
若出现如下错误,
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xb0 in position 1: ordinal not in range(128) Something went wrong during the installation. See the error message above.
是因为安装 setuptools 不成功。解决方法如下:
打开C:\Python27\Lib(Python的安装目录)下的 mimetypes.py 文件,找到大概256行的
default_encoding = sys.getdefaultencoding()
在这行前面添加三行:
if sys.getdefaultencoding() != 'gbk': reload(sys) sys.setdefaultencoding('gbk') default_encoding = sys.getdefaultencoding()
保存后再次安装 ez_install,成功的话最终会输出
Installed e:\program files\python2\lib\site-packages\setuptools-5.7-py2.7.egg
Processing dependencies for setuptools==5.7
Finished processing dependencies for setuptools==5.7
3,安装 pyquery
easy_install pyquery
安装成功则最后输出
Installed e:\program files\python2\lib\site-packages\cssselect-0.9.1-py2.7.egg
Finished processing dependencies for pyquery
代码实例如下:
from pyquery import PyQuery as pyqhtml = '''<html> <title>这是标题</title><body> <p id="hi">Hello</p> <ul> <li>list1</li> <li>list2</li> </ul></body></html>'''jq = pyq(html)print jq('title') # 获取 title 标签的源码# <title>这是标题</title>print jq('title').text() # 获取 title 标签的内容# 这是标题print jq('#hi').text() # 获取 id 为 hi 的标签的内容# Helloli = jq('li') # 处理多个元素for i in li: print pyq(i).text()# list1# list2
所以对Web前端有所了解的话,使用起来真是非常得心应手。
更多用法可以查看官方的API文档:http://pyquery.readthedocs.org/en/latest/api.html,或是http://www.geoinformatics.cn/lab/pyquery/