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 条评论
登录 后参与评论

相关文章

来自专栏拂晓风起

双击bat用CMD窗口打开jar (专为没有界面的java程序设计的)

1083
来自专栏前端说吧

Compass(更新中。。。)

2206
来自专栏BIT泽清

app 安全和ios及安卓马甲包代码混淆的demo的手把手教你的详细教程

App Security And CodeConfuse (app 安全和代码混淆的demo的手把手教你的详细教程)

1561
来自专栏AndroidTv

读书笔记--Android Gradle权威指南(上)前言笔记

1344
来自专栏卡少编程之旅

使用SSR来模拟后端mock数据

32313
来自专栏君赏技术博客

【已解决】Encountered an unknown error (Unable to find a specification for `xxxx` depended upon by `xxxx`

我们模块化的时候制作自己私有库免不了要依赖其他的私有库,我们通常在验证或者编写的时候就需要使用 podfile 文件添加我们私有库的 source 源。

1361
来自专栏小樱的经验随笔

基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案

基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案 最近在研究Java,涉及命令行编译,使用notepad++编辑器,然后使用javac编...

2795
来自专栏java一日一条

Java EE7和Maven工程入门(3)

本文开始讲述第三部分。我们已经有了一个父pom并且已经为我们的war模块定义好了pom。在原来的设置中,我们已经定义了应用程序将要包含一个以ejb jar包的形...

541
来自专栏挖坑填坑

.net core + angular 项目中使用ueditor遇到的问题

这是两个问题, 1、angular中使用ueditor 2、.net core 中使用ueditor

562
来自专栏salesforce零基础学习

salesforce 零基础开发入门学习(十)IDE便捷小知识

在这里介绍两个IDE的便捷开发的小知识。 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦。新版增加了一个特性:即可...

29710

扫码关注云+社区