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

873
来自专栏iOS开发日记

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

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

4038
来自专栏happyJared

APP自动化:Appium极简上手

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

761
来自专栏建站达人秀

如何在 Windows 上搭建 PHP 网站

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

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

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

2268
来自专栏炉边夜话

在Debian中打造属于自己的deb包

问题:如果你要在Debian系统中发布一款软件或者一个包,该如何做呢?如果你的项目中有各种二进制包,该如何维护呢?如果你自己做了一款小小的实用软件,该如何与朋友...

1202
来自专栏大数据钻研

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

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

2876
来自专栏容器云生态

screen 简单使用

      系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通...

2316
来自专栏实用工具入门教程

如何部署 MongoDB 集群

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

1670
来自专栏calvin

asp.net core 编译mvc,routing,security源代码进行本地调试

因为各种原因,需要查看asp.net core mvc的源代码来理解运行机制等等,虽说源代码查看已经能很好的理解了。但是能够直接调试还是最直观的。所有就有了本次...

872

扫码关注云+社区