偶尔的机会,知道这么个扩展,手贱翻了下文档,发现似乎挺有意思,遂记录一二。

what:

这是一个python版本的jquery,而且是后端执行的,至少官方是这么说的:

pyquery allows you to make jquery queries on xml documents. The API is as much as possible the similar to jquery. pyquery uses lxml for fast xml and html manipulation.

This is not (or at least not yet) a library to produce or interact with javascript code.

what for:

可以用来:

1) 设定主题

2) html分析

why:

I just liked the jquery API and I missed it in python so I told myself “Hey let’s make jquery in python”. This is the result.

How:

首先,作者假定网页是utf-8编码的。(如果不是请自行处理)

网页不是utf-8的,请添加以下处理逻辑:

import urllib2
from pyquery import PyQuery as pq url_instance = urllib2.urlopen('http://your_site')
page_text_raw = url_instance.read()
page_text_unicode = unicode(page_text_raw,'utf-8')
page_dom = pq(page_text_unicode)

  

然后,就可以向jquery一样调用(不是100%,作者都说as much as possible the similar to the JQuery ...)。

api如下:

主要请参考这里

PyQuery.val(value=<NoDefault>)

设置DOM元素的value属性

PyQuery.wrap(value)

这个比较有用,可以同一为一组元素设定父容器,从而改变主题(Theme),demo如下:

d = pq('<div><span>Hey</span><span>you !</span></div>')
print d('span').wrap('<div></div>')

输出:

<div><span>Hey</span></div><div><span>you !</span></div>

备注,还有一个warpAll, 作用是将所有元素统一包在一起,

print d('span').wrapAll('<div></div>')

结果:

<div><span>Hey</span><span>you !</span></div>

PyQuery.toggleClass(value)

这个跟jquery的toggle类似。

html/text/val, 读取/设置html,text,value

其他略

python - PyQuery的更多相关文章

  1. python pyquery 基本用法

    1.安装方法 pip install pyquery 2.引用方法 from pyquery import PyQuery as pq 3.简介 pyquery 是类型jquery 的一个专供pyth ...

  2. Awesome Python

    Awesome Python  A curated list of awesome Python frameworks, libraries, software and resources. Insp ...

  3. Python开源框架、库、软件和资源大集合

    A curated list of awesome Python frameworks, libraries, software and resources. Inspired by awesome- ...

  4. Python 库汇总英文版

    Awesome Python  A curated list of awesome Python frameworks, libraries, software and resources. Insp ...

  5. python 抓取网上OJ试题

    学校工作需要,需架设一台内网OJ服务器,采用了开源的hustoj.试题下载了hustoj的freeprblem的xml文件.导入时出现很多错误,不知什么原因.另外要将历年noip复赛试题加上去,但苦于 ...

  6. Python爬虫学习==>第五章:爬虫常用库的安装

    学习目的: 爬虫有请求库(request.selenium).解析库.存储库(MongoDB.Redis).工具库,此节学习安装常用库的安装 正式步骤 Step1:urllib和re库 这两个库在安装 ...

  7. python爬虫神器PyQuery的使用方法

    你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有了一些 ...

  8. windows下python安装pyquery

    安装pyquery之前首先要明确一点,easyinstall 是一款python包管理器,类似于node的npm,用于安装python的扩展包,它安装的包是以*.egg的方式. 要安装pq需要经历以下 ...

  9. Python开发包推荐系列之xml、html解析器PyQuery

    使用python,喜欢她的简洁是一方面,另外就是它有着丰富的开发包 好用又方便 接下来会给大家推荐一系列很赞的开发包. 在解析html.xml过程中,我们有不少的包可以用.比如bs.lxml.xmlt ...

随机推荐

  1. HTML5——行走日记

    效果展示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  2. 团队作业 -- beta版本

    下一阶段需要改进完善的功能 1界面布局 2方块颜色调整 下一阶段新增的功能 1分数排行榜 2撤销上一步操作 需要改进的团队分工 无. 按要求加上一起进行编码任务 需要改进的工具流程 使用github进 ...

  3. Cellphone Typing 字典树

    Cellphone Typing Time Limit: 5000ms Memory Limit: 131072KB   This problem will be judged on UVA. Ori ...

  4. 缓存插件 EHCache 对象缓存(Spring)

    对象缓存就是将查询的数据,添加到缓存中,下次再次查询的时候直接从缓存中获取,而不去数据库中查询. 对象缓存一般是针对方法.类而来的,结合Spring的Aop对象.方法缓存就很简单.这里需要用到切面编程 ...

  5. Java编程思想学习(十六) 并发编程

    线程是进程中一个任务控制流序列,由于进程的创建和销毁需要销毁大量的资源,而多个线程之间可以共享进程数据,因此多线程是并发编程的基础. 多核心CPU可以真正实现多个任务并行执行,单核心CPU程序其实不是 ...

  6. 进化策略-python实现

    ESIndividual.py import numpy as np import ObjFunction class ESIndividual: ''' individual of evolutio ...

  7. BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)

    今天zky学长讲数论,上午水,舒爽的不行..后来下午直接while(true){懵逼:}死循全程懵逼....(可怕)Thinking Bear. 2190: [SDOI2008]仪仗队 Time Li ...

  8. DLUTOJ 1209 字典序和r-子集

    传送门 Time Limit: 6 Sec  Memory Limit: 128 MBSubmit: 73  Solved: 14 Description Input 多组输入数据. 每组数据: 第一 ...

  9. FOJProblem 2214 Knapsack problem(01背包+变性思维)

    http://acm.fzu.edu.cn/problem.php?pid=2214 Accept: 4    Submit: 6Time Limit: 3000 mSec    Memory Lim ...

  10. LWP 轻量级线程的意义与实现

    转子 http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 二.Linux 2.4内核中的轻量进程实现 最初的进程定义都包含程序.资源 ...