Python使用pyQuery解析HTML内容

pyQuery 是 jQuery 的Python实现,如果对Web前端有了解,特别是有用过 jQuery 的,那么 pyQuery 将会是你处理HTML内容的最佳选择。教程基于如下环境:

  • 系统: Windows 7 64位
  • Python版本: 2.7

安装pyQuery

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

使用 pyQuery 解析HTML内容

代码实例如下:

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/

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-01-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Linux驱动

23.QT记事本

源码下载地址: https://download.csdn.net/download/qq_37997682/10453294

17230
来自专栏大数据钻研

HTML meta标签总结与属性使用介绍

之前学习前端中,对meta标签的了解仅仅只是这一句。 <metacharset="UTF-8"> 但是打开任意的网站,其head标签内都有一列的meta标签。比...

35760
来自专栏世界第一语言是java

手动下载genymotion ova镜像文件,genymotion下载失败、慢解决方案

30480
来自专栏追不上乌龟的兔子

使用MongoDB构建数据库集群

MongoDB是一个领先的非关系型数据库管理系统,也是NoSQL运动的重要成员。MongoDB不是使用关系数据库管理系统(RDBMS)的表和固定模式,而是在文档...

26330
来自专栏Web项目聚集地

什么是跨域?解决方案有哪些?

同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同...

1K20
来自专栏happyJared

APP自动化:Appium极简上手

Appium是一个开源的自动化测试框架,用于原生,混合和移动Web应用程序。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。关...

25610
来自专栏iOS开发日记

iOS - xcode经常报的经典error解决办法大全

错误原因: 返回cell的代码放在括号的范围不对,看下周围代码的作用域。有时括号太多,容易放错代码。

49480
来自专栏建站达人秀

如何在 Windows 上搭建 PHP 网站

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HT...

4K30
来自专栏行者常至

tomcat下静态页面中文乱码

21200
来自专栏码农笔录

手动下载genymotion ova镜像文件,genymotion下载失败、慢解决方案

25640

扫码关注云+社区

领取腾讯云代金券